- 1、本文档共82页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 C++的I/O流类库 7·1 c十十为何建立自己的输入输出系统 7·2 c十十的流及流类库 7·3 输入输出的格式控制 7·4 用户自定义类型的输入输出 7.5 文件的输入输出 7·6 应用举例 7·1 C++为何建立自己的输入输出系统 在c十十中需要定义众多的用户自定义类型,但c语言的输入输出系统不支持用户自定义的对象。 struct my_struct{ int i; float f; char str; }s; 下面的语句是不能接受的: printf(%my_struct,s); 使用C十十的输入输出系统,就可以通过重载和运算符来解决以上问题。C十十的类机制允许它建立一个可扩展的输入输出系统,它可以通过修改和扩展来加入用户自定义类型及相应操作。 7·2 c十十的流及流类库 7.2.l C十十的流 输入输出是一种数据传递操作,它可以看作字符序列在主机与外部介质之间的流动。流(stream)为从源到目的的数据流的引用。每个流都是一种与设备相联系的对象。流具有方向性. 1. C十十的流 与输入设备(如键盘)相联系的流称为输入流; 与输出设备(屏幕)相联系的流称为输出流; 与输入输出设备(如磁盘)相联系的流称为输入输出流。 2. 四个预定义流及所关联的具体设备: (1)标准输入流cin : 与标准输入设备相关联; (2)标准输出流cout :与标准输出设备相关联; (3)非缓冲型的标准出错流cerr :与标准错误输出设备相关联; (4)缓冲型的标准出错流clog :与标准错误输出设备相关联. 指定的标准错误输出设备总是显示终端。 cerr和clog之间的区别是:cerr没有被缓冲,因而发送给它的任何内容都立即输出;相反,clog被缓冲,当缓冲区满时才进行输出,也可以通过刷新流的方式强迫刷新缓冲区。 在程序中,也可以把错误信息送到cout。但当用户把标准输出设备定向为其它设备时,cerr仍然把信息送给显示终端,以便用户能立即看到该信息。 7.2.2 流类库 两个基类: streambuf类和ios类。 1.streambuf类 (1)用作流类库的其它部分使用的基类. 提供对缓冲区的低级操作,如设置缓冲区、对缓冲区指针进行操作、从缓冲区取字符、向缓冲区存储字符等。 (2) 派生出三个类: ①filebuf类使用文件来保存缓冲区中的字符序列。将filebuf同某个文件的描述字相联系就称打开这个文件。、 ②strstreambuf类提供了在内存中进行提取和插入操作的缓冲区管理。 ③conbuf类用于处理输出。它提供了控制光标、设置颜色、定义活动窗口、清屏、清一行等功能,为输出操作提供缓冲区管理。 2.ios类 ios类(及其派生类)使用streambuf及其派生类完成检查错误的格式化输入输出,并支持对streambuf的缓冲区进行输入输出时的格式化或非格式化转换。 (1) 四个直接派生类: 输入流类 istream 输出流类 ostream 文件流类 fstreambase 串流类 strstreambase (2)各个类的继承关系: ①输入输出流类iostream是通过多重继承派生而来的: class ios; class istream:virtual public ios; class ostream:virtual public ios; class iostream: public stream,public ostream; ②以 istream 、ostream 、fstreambase 和 strstreambase 可以派生出多个实用的流类 . fstream (输入输出 文件流类)、strstream (输入输出 串流类)、con_stream (屏幕输出 流类)、ifstream (输入文件流类)、ofstream (输 出 文件流类)、 istrstream(输入串流类)和 ostrstream (输出串流类)等。 ③在 istream 类、ostream 类和 iostream 类的基础上 ,分别重载赋值运算符= ,就派生出istream_withassign、ostream_withassign和iostream_w
文档评论(0)