- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 C++的I/O流 内容提要 1 输入输出(I/O)流 2 输入输出的格式控制 3 用户自定义类型的输入和输出 4 文件的I/O操作 §7.1.输入输出(I/O)流 1 什么是流 流——字符序列在主机与外部介质之间流动的抽象。 流包含输入输出的数据传递操作(I/O) 1 什么是流(续) 当程序与外界环境进行信息交换时,存在着两个对象,一个是程序中的对象,另一个是文件对象。 流是一种抽象,它负责在数据的生产者和数据的消费者之间建立联系,并管理数据的流动。 程序建立一个流对象,并指定这个流对象与某个文件对象建立连接,程序操作流对象,流对象通过文件系统对所连接的文件对象产生作用。 读操作在流数据抽象中被称为(从流中)提取,写操作被称为(向流中)插入。 2 C++为什么引入流 1、C语言提供的输入输出功能弱:scanf和printf只能识别系统预定义的类型。 2、引入面向对象的方法:操作不同类型的对象。 3、可以通过重载进行功能扩充:比如重载“”和“”符号(插入和提取运算符)。 3 C++的流及流类库 C++本身无专门的输入输出语句,IO操作由流类库完成 流类库(流类的集合)是用继承方法建立 流对象与特定的设备相联系 4 输入和输出流 输出流—— 1、cout : 输出流ostream类的一个预定义对象,与标 准输出设备(终端屏幕)相联系,ostream中重载了运算符(插入运算符) 2、插入运算符: ostream operator(类型); //重载形式:注意优先级和结合顺序 例如: cout“string”; 4 输入和输出流(续) 输入流—— 1、cin : 输入流istream类的一个预定义对象,与标准输入设备(终端键盘)相联系,istream中重载了运算符(提取运算符) 2、提取运算符: istream operator(类型); //重载形式:注意返回类型 例如: cin i; §7.2.输入输出的格式控制 1 ios类的格式控制成员函数 ios类中定义的格式成员函数: 1 ios的格式控制成员函数(续) 2 标志状态字 函数setf(long flags) 参数flags为32位的状态字 4个字节 通过设置状态字也可以进行格式控制 具体32位每位的作用见下页: 2 标志状态字(续) 2 标志状态字(续) 状态字的使用: 3 控制符 使用状态字不方便,可以使用控制符如: int x=1, y=2; coutsetw(5)xsetw(4)y; 3 控制符(续) 自定义控制符 格式:iostream manip_name(iostream stream) { // 自定义代码 reutrn stream; } §7.3.用户自定义类型的输入和输出 1 重载插入运算符 重载运算符“”的一般格式如下: 1 重载插入运算符(续) 重载运算符“”的例子: 1 重载插入运算符(续) 当进行了运算符重载后,就可以使用对Complex对象进行输出操作 2 重载提取运算符 重载运算符“”的一般格式如下: 2 重载提取运算符 重载运算符“”的例子: 思考一下:cinc1c2; 将被编译器如何解释(如何写出函数形式)? §7.4.文件的I/O操作 1 文件和流 处理文件的类在fstream.h中定义 文件输入输出: 1、创建流对象 2、使用流的成员函数打开文件 操作文件的两个类 1、ofstream 2、ifstream 1 文件和流(续) 输出文件流类ofstream 输出文件流成员函数 open函数 把流与一个特定的磁盘文件关联起来。 需要指定打开模式。 put函数 把一个字符写到输出流中。 插入运输符 把基本类型或类类型数据插入(写)到输出流中。 1 文件和流(续) 输出文件流成员函数 write函数 把内存中的一块内容写到一个输出文件流中 seekp和tellp函数 操作文件流的内部指针 close函数 关闭与一个输出文件流关联的磁盘文件 错误处理函数 在写到一个流时进行错误处理 1 文件和流(续) 输出文件流简单举例 1 文件和流(续) 输入文件流类ifstream 输入文件流成员函数 open函数 把流与一个特定的磁盘文件关联起来。 需要指定打开模式。 get函数 把一个字符读到输入流中。 提取运输符 把基本类型或类类型数据提取(读)到输入流中。 1 文件和流(续) 输入文件流成员函数 read函数 从一个文件读字节到一个指定的内存区域,由长度参数确定要读的字节数。如果给出长度参数,当遇到文件结束或者在文本模式文件中遇到文件结束标记字符时结束读
文档评论(0)