- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章 C++语言的输入输出流库 绍兴元培学院信息与电子系 本 章 主 要 内 容 本章要点: 掌握类流和流对象、标准流和流操作、格式控制 。 掌握用户自定义数据类型的I/O流的使用方法 。 掌握串流、文件和流、文件打开和关闭、文本文件、二进制文件 。 7.1.1 流类和流对象 当程序与外界环境进行信息交换时,存在着两个对象,一个是程序中的对象,另一个是文件对象。 流是一种抽象,它负责在数据的生产者和数据的消费者之间建立联系,并管理数据的流动。 程序建立一个流对象,并指定这个流对象与某个文件对象建立连接,程序操作流对象,流对象通过文件系统对所连接的文件对象产生作用。 流类对象可以建立和删除,可以从流中获取数据(提取操作)和向流添加数据(插入操作)。 流是C++语言流库用继承方法建立起来的一个输入/输出类库(I/O流类库),它具有两个平行基类:streambuf和ios,所有的流类都是由它们派生出来的。 streambuf 类 用来提供物理设备的接口,以及提供缓冲或处理流的通用方法。 缓冲区由一字符序列和两个指针组成,这两个指针分别指向字符要被插入和被提取的位置。 该类提供对缓冲区的低级操作:设置缓冲区、对缓冲区指针操作、向缓冲区存/取字符。 该类可以派生出三个类:filebuf、strstreambuf、stdiobuf。 ios 类及其派生类 为用户提供使用流类的接口,它们均有一个指向streambuf类的指针,它使用streambuf 类完成检查错误的格式化输入/输出,并支持对streambuf 类的缓冲区进行输入/输出时的格式化或非格式化转换。 在C++语言系统中所有的流式输入输出操作都是借助ios类及其派生类对象实现的。 ios类有4个直接派生类,即:输入流类istream、输出流类ostream、文件流类fstreambase、串流类strstreambase,这4种流作为流库中的基本流类。 符号“” (插入操作)和“” (提取操作)是在派生类中定义的重载运算符函数。 头文件 7.1.2 标准流和流操作 7.1.2.1 标准流 7.1.2.2 输入流操作 7.1.2.2 输入流操作 7.1.2.2 输入流操作 7.1.2.2 输入流操作 7.1.2.2 输入流操作 7.1.2.2 输入流操作 7.1.2.2 输入流操作 7.1.2.2 输入流操作 7.1.2.2 输入流操作 7.1.2.3 输出流操作 7.1.2.3 输出流操作 7.1.2.3 输出流操作 7.1.2.3 输出流操作 7.1.2.3 输出流操作 7.1.2.3 输出流操作 7.1.2.3 输出流操作 7.1.2.4 流错误状态 7.1.2.4 流错误状态 7.1.3.1 使用ios类中的枚举常量 在根基类ios中定义有三个用户需要使用的枚举类型,由于它们是在公有成员部分定义的,所以其中的每个枚举类型常量在加上ios::前缀后都可以被本类成员函数和所有外部函数访问。 在三个枚举类型中有一个无名枚举类型,其中定义的每个枚举常量都是用于设置控制输入输出格式的标志使用的。 该枚举类型定义如下: enum { skipws, left, right, internal, dec, oct, hex, showbase, showpoint, uppercase, showpos, scientific, fixed, unitbuf, stdio } ; 各枚举常量的含义如下: 各枚举常量的含义如下: 各枚举常量的含义如下: 各枚举常量的含义如下: 各枚举常量的含义如下: 各枚举常量的含义如下: 各枚举常量的含义如下: 各枚举常量的含义如下: 各枚举常量的含义如下: 各枚举常量的含义如下: 各枚举常量的含义如下: 各枚举常量的含义如下: 各枚举常量的含义如下: 各枚举常量的含义如下: 各枚举常量的含义如下: 7.1.3.2 使用I/O操作控制符 7.1.3.3 使用ios类成员函数 (详见P181~P183) 【例7.9】分析下列程序的运行结果。 7.1.4 串流 10.4 串流 10.4 串流 10.4 串流 10.4 串流 7.2 用户自定义数据类型的I/O流 用户自定义数据类型的输入与输出也可以像系统标准数据类型的输入/输出那样直接方便,用户可根据自己的需要为插入运算符赋予新的含义,使它按用户的意愿输出类的内容。 在C++语言中采用重载运算符、来实现。 1.重载输入运算符 通过重载输入运算符“”来实现用户自定义类型的输入,定义格式如下: istream operator( istream
文档评论(0)