- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章输入输出流(inputoutputstream)地基本概念及原理
第八章 输入输出流(input/output stream)的基本概念及原理 8.1 预定义数据类型的输入/输出 8.1.1 基本情况及其优点 C++输入输出流的优点: (一)重载运算符“”和“”能以函数重载的形式极大地扩大用途,在输入输出流中充分体现多态性。 C语言的输入/输出系统本来就灵活性大、功能比较完善。但它有一个较大缺点:无法处理众多的用户自定义数据类型(主要是类及其对象)。例如,有一个结构类型exampl如下: struct exampl { int j; char str[80]; } str_ex; 如欲输出此结构对象str_ex的两个成员的内容,因而笼统地使用如下输出语句printf, printf(“%exampl”,str_ex); 则将会出现编译错误。而C++的输出/输入系统则能很好地解决这个问题。 (二)类型安全(type-safe) [例1]C语言输出语句中的类型错误(第一章已看过) #include stdio.h void main( ) { int i=3; double d=4.4; printf(“%d\t%f\n”, i, d); } 运行结果: 3 4.400000 对! 但如写错为: printf(“%d\t%d\n”, i, d); 则编译时不出错,但运行结果错,为: -26214 但在C++中只须写 couti“ ”dendl;而不必写出变量类型!就能得出 3 4.4,对! 始终不会出错! (三)通过缓存增加功能。 (四)附带优点是书写方便以及显示中没有冗余字符,能自动略去浮点数尾数中的零(但如用户希望显示多余的零,也可以做到)。 C++的输入/输出系统是对流的操作,也即操作数据使其流向对象,或从对象流出。 什么是流?流是从源头到目的的数据流动。当键入字符时,字符从键盘流入程序中;当将数据写入磁盘文件中时,数据自程序流动至磁盘上。 C++输入/输出流库是使用继承方法建立起来的一个输入/输出类库,它具有两个平行的基类,即streambuf类和ios类。所有其它流类都是从它们直接或间接地派生出来的。 streambuf类用于提供物理设备的接口,它提供缓冲或处理流的通用方法。它作为一个虚基类,具有类层次如下: 图 8.1 ios类及其派生类用于为用户提供使用流类的接口。它使用streambuf完成检查错误的格式化输入/输出操作,并支持对streambuf的缓冲区进行输入/输出时的格式化或非格式化转换。 ios类作为流库中的一个虚基类,派生出许多派生类,其主要层次如下: 图 8.2 8.1.2 预定义流(标准流)的基本原理 预定义输出输入流涉及较多的头文件有四个:ios.h,istream.h,ostream.h和iostream.h。下面分别介绍。 8.1.2.1 输出流的基本概念 流输出运算符“”是在头文件ostream.h的class ostream中定义的。从图8.2可以看出,class ostream是从class ios中派生出来的。因此下面先看一下用于定义class ios的头文件ios.h。 先看ios.h: /*** *ios.h - definitions/declarations for the ios class. ***/ class ios { public: enum io_state { goodbit = 0x00, eofbit = 0x01, failbit = 0x02, badbit = 0x04 }; enum open_mode { in = 0x01, out = 0x02, ate = 0x04, app = 0x08, trunc = 0x10, nocreate = 0x20, noreplace = 0x40, binary = 0x80 }; enum seek_dir { beg=0, cur=1, end=2 }; enum { skipws = 0x0001, left = 0x0002,
您可能关注的文档
最近下载
- 呼吸衰竭ppt(共40张PPT).pptx VIP
- 7.1《风景谈》课件(共41张PPT)(含音频+视频).pptx VIP
- QXT3传感器中文操作手册.pdf VIP
- 病理科医疗质量自查表.docx VIP
- 菲亚特博悦说明书.docx VIP
- 2014-6-30电力变电站钢结构装配式建筑、围墙、防火墙.pdf VIP
- 上海市市东实验学校2022-2023学年高一10月月考语文试题.pdf VIP
- 《半导体物理与器件》教学大纲.docx VIP
- 2025青海公司所属华电(格尔木)能源有限公司面向华电系统内外招聘180人笔试备考试题及答案解析.docx VIP
- 人教版道德与法治四年级上册教案.docx VIP
文档评论(0)