网站大量收购闲置独家精品文档,联系QQ:2885784924

南开大学高级语言程序设计课件第10章 输入输出流.ppt

南开大学高级语言程序设计课件第10章 输入输出流.ppt

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 输入输出流 10.1 文件、流以及C++的流类库 *10.2 插入与提取运算符的重载 10.3 I/O格式的控制 10.4 磁盘文件的输入输出 10.5 text文件与binary文件 *10.6 字符串流 10.7 其他输入输出控制函数 10.1 文件、流以及C++的流类库 -- 参看书p325 1 流类库的优点 用C++语言自己的支持I/O 操作的流类库代替printf 函数族,是一个明显的进步 ? (1)简明与可读性 I/O 语句更为简明,增加了可读性 (2)类型安全(type safe) 所谓类型安全,是指在进行I/O 操作时不应对于参加输入输出的数据在类型上发生不应有的变化 (3)易于扩充 2 文件与流的概念 C++语言中的输入输出操作(功能)是由它所预定义的诸I/O流类的一个类库所提供的。 ?? 1. 流(Stream) ? 流(stream)是一个逻辑概念,它是C++语言对所有外部设备的逻辑抽象,它代表的是某种流类类型的一个对象。C++的IO系统将每个外部设备都转换成一个称为流的逻辑设备,由流来完成对不同设备的具体操作。 ? 2. 文件(File) 文件(File)是一个物理概念,代表存储着信息集合的某个外部介质,它是C++语言对具体设备的抽象。如,磁盘文件,显示器,键盘(又可以分为文本和二进制文件)。 所有流(类对象)的行为都是相同的,而不同的文件则可能具有不同的行为。如,磁盘文件可进行写也可进行读操作;显示器文件则只可进行写操作;而键盘文件只可进行读操作。 当程序与一个文件交换信息时,必须通过“打开文件”的操作将一个文件与一个流(类对象)联系起来。一旦建立了这种联系,以后对该流(类对象)的访问就是对该文件的访问,也就是对一个具体设备的访问。可通过“关闭文件”的操作将一个文件与流(类对象)的联系断开。 3. C++的基本流类库 ? 在头文件 “iostream.h” 中说明(预定义)了一批基本流类: ? ios -- 基本流类的基类; istream -- 由ios派生,支持输入(提取“”)操作; ostream -- 由ios派生,支持输出(插入“”)操作; iostream -- 由istream与ostream共同派生,支持输入和输出双向操作。 C++预定义的流有: ? extern istream cin; -- 对象cin对应于键盘文件 extern ostream cout; -- 对象cout对应于显示器文件 extern ostream cerr; -- 对象cerr对应于显示器文件 extern ostream clog; -- 对象clog对应于显示器文件 ? 程序中可直接对上述4个预定义流类对象进行读写,而不必先进行“打开文件”的操作,使用完后也不需要进行“关闭文件”的操作(因为这些流类对象与文件之间的联系是预定义好的,可认为系统已为每一程序都隐含进行了对它们的打开与关闭操作)。 4. C++的文件流类库 ? 在头文件“fstream.h”中说明(预定义)了一批文件流类,专用于磁盘文件: ? ifstream -- 由istream派生,支持从磁盘文件中输入(读入)数据; ofstream -- 由ostream派生,支持往磁盘文件中输出(写出)数据; fstream -- 由iostream派生,支持对磁盘文件进行输入和输出数据的双向操作。 ? C++中没有预定义的文件流(类对象),程序中用到的所有文件流类对象都要进行自定义。 *10.2 插入与提取运算符的重载 -- 参看书p329 对自定义类complex重载输入输出运算符“”与“”: #includefstream.h class complex { double r; double i; public: complex(double r0=0, double i0=0) { r=r0; i=i0; } complex operator +(complex c2); complex operator *(complex c2); friend istream operator (istream in, complex com); friend ostream operator (ostream out, com

您可能关注的文档

文档评论(0)

ormition + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档