VC++程序设计 -第十四章输入输出流类库.pdfVIP

VC++程序设计 -第十四章输入输出流类库.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十四章输入/输出流类库 I/O 是输入/输出(Input/Output )的缩写,输入/输出是指程序与计算机的外 部设备之间进行信息交换。输出操作将一个对象转换为一个字符序列,输出到某 一个地方;输入操作从某一个地方接收到一个字符序列,然后将其转换为对象所 要求的格式赋给对象。接收输出数据的地方称为目的,输入数据来自的地方称为 源。输入/输出操作可以看成是字符序列在源和目的与对象之间的流动。因此, 将执行这个 I/O 操作的类体系称为流类,提供这个流类实现的系统称为流类库。 C++提供了功能强大的流类库。本章主要介绍流类库提供的格式化 I/O 和文件的 输入/输出。 14.1 概述 在 C++ 中,没有专门的输入/输出语句,为了方便用户灵活地完成输入/输出, C++提供了二套输入/输出方法:一套是为了与 C 语言保持兼容,提供了与 C 语 言兼容的输入/输出库函数。在 C++程序中不提倡使用这种库函数来实现 I/O,我 们也不作介绍了。另一套是功能强大的 I/O 流类库。为了保持 C++面向对象编程 的特色,建议在C++程序中使用 I/O 流类库。 14.1.1 流(Stream) C++语言的 I/O 系统为了向程序设计者提供一个统一的接口,使得程序的设 计尽量与所访问的具体设备无关,在程序员与被使用的设备之间提供了一个抽象 的界面——流。 当前计算机上配备的输入/输出设备是各式各样的,对不同的输入/输出设备, 其输入/输出的操作方式是不同的。为了简化这种因设备而异的操作方式,C++ 为程序员提供了逻辑设备的概念。对任一逻辑设备而言,基本的操作只有几种: 从逻辑设备上读取数据,将数据写入逻辑设备。用户对这种逻辑设备的简单操作 方式是很容易掌握的。而将逻辑设备的操作转换成具体设备的输入/输出操作是 由流自动完成。从用户使用逻辑设备的角度而言,所有逻辑设备的行为是相同的, 接口是一致的。用户用同一个写操作的成员函数可以实现对一个磁盘文件的写操 作,也可以实现将输出信息送向显示器显示,也可实现将输出信息送打印机打印。 C++提供了二种类型的流:文本流(Text stream )和二进制流(Binary stream )。文本流是一串 ASCII 字符。如源程序文件和文本文件(如文字处理软 件产生的数据文件)都是文本流。这种文本流可以直接输出到显示器或送到打印 机上打印。通常,这种文本流在不同的设备之间传送时,要作一些变换,如将换 行字符“\n ”变换成回车换行二个字符“\r\n ”,或进行相反的变换等。二进制流 是将数据以二进制形式存放的,这种流在数据传输时,不要作任何变换。 使用流类库来完成输入/输出,比使用传统语言中的库函数至少有二个方面 的好处:首先是流具有严格的类型检查机制,可减少因使用不当而引起的程序错 误。另一方面,流是面向对象的,可以利用类的继承性和多态性,给用户提供的 统一的接口,只要使用较少的成员函数就能实现更多的功能。 14.1.2 文件 流是 C++对所有的外部设备的逻辑抽象,而文件则是 C++对具体设备的抽 象。如一个源程序可作为一个文件,一个描述类的数据结构也可以是一个文件, 一个可执行程序也是一个文件,把一台显示器也可看作为一个文件,把一台打印 机也可看作为一个文件。把设备看作文件的好处是很明显的,用户只要掌握使用 文件的方法,就可以使用具有不同特性的设备。对于流的使用行为是相同的,而 不同文件可能具有不同的行为,即允许执行不同的操作。如对于磁盘文件,可以 将数据写入文件中,也可以将数据从文件中取出;而对于打印机文件,只能将数 据写入文件,而不能从打印机文件中读取数据。对文件的输入/输出,主要介绍 磁盘文件的输入/输出。 14.1.3 缓冲 系统在主存内中开辟一个专用的内存区域用来临时存放输入/输出信息,如 先将源输入的信息送到这个区域,然后从这个区域中取出数据。系统在主存中开 辟的这种区域称为缓冲区。 输入/输出流可以是缓冲的,也可以是非缓冲的。对于非缓冲流,一旦数据 送入流中,立即进行处理。而对于缓冲流,只有当缓冲区满时,或当前送入的数 据为新的一行字符时,系统才对流中的数据进行处理(称为刷新)。引入缓冲的 目的主要是为了提高系统的效率,因为输入/输出设备的速度要比 CPU 慢得多, 频繁地与外设交换信息必将占用大量的 CPU 时间,降低了程序的运行速度。使 用缓冲后,CPU 只要从缓冲中取数据或者把数据写入缓冲,而不要等待设备具

文档评论(0)

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

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

1亿VIP精品文档

相关文档