- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章_C_的IO流
第七章 C++的I/O流类库 7.1 C++为何建立自己的输入输出系统 7.2 C++的流及流类库 7.3 预定义类型的输入输出 7.4 用户自定义类型的输入输出 7.5 文件的输入输出 7.1 C++为何建立自己的输入输出系统 C语言的输入输出系统不支持用户自定义的对象或数据类型,如一定义: struct my_struct{ int i ; float f; char *str; }s; 不能用输出函数来输出以上结构变量: printf(“% my_struct”,s); 7.1 C++为何建立自己的输入输出系统 C++中,用户自定义的对象很多。C++的类机制允许它可以建立一个可控制的输入输出系统。可以通过重载“”和“”算符来解决以上的问题。 7.2 C++的流及流类库 7.2.1 C++的流 流 在数据从一个对象流动到另一个对象的过程中,无论是否对数据进行缓冲或对数据进行格式变换,这种流动都被抽象为流. 每个流都和一种与设备相联系。 与输入设备(如键盘)联系的流为输入流;与输出设备(如屏幕)联系的流为输出流。 class ios; class istream: virtual public ios; class ostream: virtual public ios; class iostream: public istream,public ostream; 又如: class istream_withassign: public istream; class ostream_withassign: public ostream; 在缺省情况下,标准输出设备是显示终端,标准输入设备是键盘。 在任何情况下,标准错误输出设备总是显示终端。 标准输出设备可以不是显示终端;但错误信息总是在显示屏幕上显示。 流在使用前要被建立,在使用后要被删除,使用特定的操作能够从流中获取数据(称为提取操作),或向流中添加数据(称为插入操作). 7.2.2 流类库 流类库是提供一组类,程序利用它们可以方便的与外部世界交换数据. C++的流类库是用继承的方法建立起来的一个输入输出类库。 流类库有两个基类,即streambuf类和ios类。 streambuf类提供对缓冲区的低级操作,如缓冲区的设置、缓冲区的读写等。 ios类用来完成检查错误的格式化输入、输出。 7.3 预定义类型的输入输出 7.3.1 无格式输入和输出 1. “” 2. “” 7.3.2输入输出的格式控制。 1.ios类的成员函数进行输入输出格式控制 p249 主要控制 状态标志字、域 宽、填充字符及输出精度。 2.使用操作符进行输入输出格式控制 p255 操作符:称为操纵函数的特殊函数 7.4 用户自定义类型的输入输出 实现方法:为用户自定义类重载运算符和 7.4.1 重载输出运算符 “” (输出或插入运算符) 定义输出运算符重载函数的一般格式如下: ostream operator(ostream stream, class_name obj) { 函数体 } 函数中第一个参数是对ostream对象的引用。 #includeiostream.h class coord { public: int x, y; coord() {x=0; y=0;} coord(int i,int j) {x=i; y=j;} }; ostream operator(ostream stream, coord ob) { streamob.x‘,’ob.yendl; return stream; } main() { coord a(5,6),b(10,34); coutab; return 0; } 程序运行结果: 5,6 10,34 7.4 用户自定义类型的输入输出 7.4.2 重载输入运算符 “”(输入或提取运算符) 重载的一般格式: istream operator (istream stream,class_name obj) { streamobj.*****; return stream; } 7.5 文件的输入输出 C++把文件看成是由数据序列组成的。 根据数据的组织形式,文件可以分为文本文件和二进制文件。 文本文件也称ASCII文件,每个字节存放一个ASCII字符。 二进制文件是将数据按在内存中的存储形式存放到磁盘上。 一般二进制文件占用的空间比较少。整数10000只要2个字节。
文档评论(0)