第十章 IO流.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章 IO流

10.1 C++流库概述 所谓“流”,就是数据从源(数据的生产者)到漏(数据 的消费者)的流动。可以把一个流简化地理解为,提供字符的源(称为输入流)或收集字符的漏(称为输出流)。 在C++程序中,数据可以从键盘流入到程序,也可以从程序流向屏幕或磁盘文件。 从流中获取数据的操作称为提取操作 向流中添加数据的操作称为插入操作 数据的输入/输出就是通过I/O流来实现的。 C++流库是C++语言为完成输入/输出工作而预定义的类的集合,这些类构成一个层次结构的系统。主要包括streambuf类和ios类。 streambuf类主要负责缓冲区的处理。缓冲区通常是由一个字符序列和两个指针组成,这两个指针分别指向字符将被插入或被取出的位置。 filebuf类扩充了streambuf类的功能,它能够处理文件。把filebuf同某个文件的描述字相联系就称为打开这个文件。 strstreambuf类扩充streambuf类的功能,提供了在内存中进行读取和插入操作的缓冲区管理。 conbuf类也扩充了streambuf类的功能,它能处理输出,为输出操作提供缓冲区管理。 streambuf类的3个派生类与基类不同之处在于,对缓冲区指针的处理方法不同,并且依据各自的用途增加了特殊的操作。 ios类及其派生类为用户提供了使用流类的接口。它们都有一个指向streambuf的指针。Ios是一个虚基类,它主要定义了用于格式化输入输出及出错处理的成员函数。 由ios类直接派生出4个类:输入流istream针对全部的预定以类型重载了输入运算符,该类提供了流的大部分输入操作。输出流ostream 针对系统全部预定义类型重载了输出运算符“”,它提供了流的主要输出操作;文件流(fstreambase)提供了文件流的公共操作;串流(strstreambase)专门处理串流。 请参考教材图10.2 ios类及其派生类。 当开始执行C++程序时,系统将自动打开几个预定义 流,用户可以在程序中直接使用它们,它们是: ○cin,称为标准输入流,是istream-withassign类的对象,缺省时为键盘,也可重定向为其他输入设备。如: int m,n; cinmn; ○ cout,称为标准输出流,是ostream-withassign类的对象缺省时为显示器 。也可重定向为其他输入设备。如: int x = 9; cout“x = “xendl; // x = 9 ○ cerr和clog都是ostream_withassign类的对象,称为标准 错误输出流,固定关联到 显示器。其中,cerr没有被缓冲,因而发送给它的任何内容都立即输出;相反,clog被缓冲了,只有当缓冲区慢了时才输出。 10.2 预定义类型的输入/输出 istream流类相对于系统预定义类型把运算符 “”重载为输入运算符;ostream流类相对于系 统预定义类型把运算符“”重载为输出运算符。对于系统预定义类型的变量来说 ,一般的标准输入输出操作可由istream类和ostream类完成。 10.2.1 istream流类 istream类中有如下的主要成员函数: ⒈get函数 ⒉ getline函数 ⒊read函数 10.2.2 ostream流类 ostream类中有如下主要成员函数: 1、 put函数: 把一个字符输出到流中。 ⒊ write函数:它们的功能是向流中输出几个字符,第一个参数指向待输出的字符串。 10.2.3 输入运算符 运算符输入预定义类型数据时的注意事项 : (教材第228页) ⒈ 在缺省情况下,运算符跳过空白符,然后读入与 输入变量类型相对应的值。 ⒉ 当输入字符串(即,类型为char*的变量)时,运算符 “”的作用是跳过空白,读 入以下的非空白字符,直到 遇到另一个空白字符为止,并在串尾放一个字符“\0”。 ⒊ 不同类型的变量一起输入时,系统除了检查是否含有 空白符之外,还完成输入数据与变量类型的匹配。 ⒋ 输入运算符“” 采用左结合方式工作,并返回它的左 操作数,因此,可以把多个输入操作组合到一个语句中。 10.2.4 输出运算符 本节讲述使用输出运算符输出预定义类型数据时 的注意事项。 ⑴输出运算符“”也采用左结合方式工作,并且返 回它的左操作数,因此,可以把多个输出操作组合 到一个语句中,使用起来很方便。 ⑵ 使用输出运

文档评论(0)

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

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

1亿VIP精品文档

相关文档