流类体系及文件操作.pdfVIP

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第12章 流类体系与文件操作 ·317· 第12章 流类体系与文件操作 通过本章学习,应了解 I/O流、流类、流类库与流类体系的概念,掌握流类的输入/输 出控制格式。了解 C++有关文件的概念及文件的使用方法,理解文件流类体系结构,掌握文 件操作的成员函数,学会文本文件与二进制文件的打开、读/写、关闭等操作的编程方法。 12.1 流类体系 在前面的章节中,所有的输入与输出操作都是通过 cin 与 cout 来完成的,要注意 cin 与 cout 并不是 C++ 的语句,而是用 C++提供的流类库定义的对象。因此,要真正的理解 C++ 的输入/输出操作,必须首先理解 C++ 的流、流类、流类库的概念,即首先应理解 C++ 的流 类体系。为此,本章首先介绍 C++流类体系,然后再介绍 C++ 中的文件操作。 12.1.1 流(Stream) 1.流类 在面向对象的 C++程序设计语言中,用类定义对象时,系统将为对象的数据成员分配 存储单元。通常,在程序执行过程中,使用输入设备(如键盘)将数据输入到为对象数据 成员分配的存储单元中,经过运算处理后,对象数据成员存储单元中的数据要通过输出设 备输出给用户,或保存在磁盘文件中。因此,数据不断的从设备流向对象,又不断的从对 象流向设备。这种数据的流动就是对象与外设之间的输入/输出操作,如图 12.1 所示。我们 已经知道,数据输入流动可以通过cin 来完成(如:cinx),数据输出流动可以通过 cout 来 完成(如:coutx) 。而cin、cout 是用流类定义的流对象,因此,数据流动是通过执行输入 /输出操作的类体系来完成的,这个用于完成输入/输出操作的类体系称为流类,提供这个流 类实现的系统称为流类库。C++提供了强大的流类库。本节主要介绍流类体系与流类库提供 的格式化输入/输出。 对象 c 的数据成员 X 输入设备 cinx coutx 输出设备 Y (如键盘) (如显示器) Z 2.流 图 12.1 对象与外设之间的数据流动 流是用流类定义的对象,如 cin、cout 等。因为流类是用于完成输入输出操作的类,所 以用流类定义的对象即流,将向程序设计者提供输入输出接口,该接口可使得程序的设计 尽可能与所访问的具体设备无关。如用户使用写操作成员函数可以实现对一个磁盘文件的 写操作,也可以实现将输出信息送显示器显示,还可以实现将输出信息送打印机打印,从 而大大减轻程序员的工作量。 3.流的分类 C++提供了两种类型的流:文本流(Text Stream )和二进制流(Binary Stream )。文本 第12章 流类体系与文件操作 ·318· 流是一串 ASCII 字符,如数字 12 在文本流中的表示方法为 1 与 2 的ASCII 码 31H 与 32H 。 而二进制流则是由一串二进制数组成,如数字 12 在二进制流中的表示方式为。源 程序文件和文本文件在传送时均采用文本流。通常,文本流在不同的设备之间传送时,可 能要作一些变换,如将换行字符’\n’变换成回车换行两个字符“\r\n” ,或进行相反的变换等。 二进制流是将数据以二进制形式存放的,这种流与设备上的输入输出一一对应,在数据传 送时不需作任何变换。 4.缓冲流与非缓冲流 系统在主存中开辟的用于临时存放输入/输出流信息的内存区称缓冲区,如图 12.2 所示。 输入/输出流也相应的分成缓冲流与非缓冲流。 磁盘文件区

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档