- 1、本文档共50页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十九章输入输出流
第19章 I/O流;在C语言中,用printf和scanf进行输入输出,往往不能保证所输入输出的数据是可靠的、安全的。
在C++的输入输出中,编译系统对数据类型进行严格的检查,凡是类型不正确的数据都不可能通过编译。因此C++的I/O操作是类型安全(type safe)的。
C++的I/O操作是可扩展的,不仅可以用来输入输出标准类型的数据,也可以用于用户自定义类型的数据。C++对标准类型的数据和对用户声明类型数据的输入输出,采用同样的方法处理。
C++通过I/O类库来实现丰富的I/O功能。C++的输入输出优于C语言中的printf和scanf,但是比较复杂,要掌握许多细节。;在C++中,输入输出流被定义为类。C++的I/O库中的类称为流类(stream class)。用流类定义的对象称为流对象。
cout和cin并不是C++语言中提供的语句,它们是iostream类的对象,在未学习类和对象时,在不致引起误解的前提下,为叙述方便,把它们称为cout语句和cin语句。
在学习了类和对象后,我们对C++的输入输出应当有更深刻的认识。;1. iostream类库中有关的类
C++编译系统提供了用于输入输出的iostream类库。iostream这个单词是由3个部分组成的,即i-o-stream,意为输入输出流。在iostream类库中包含许多用于输入输出的类。
ios是抽象基类,由它派生出istream类和ostream类,两个类名中第1个字母i和o分别代表输入(input)和输出(output)。istream类支持输入操作,ostream类支持输出操作,iostream类支持输入输出操作。 iostream类是从istream类和ostream类通过多重继承而派生的类。;
C++对文件的输入输出需要用ifstream和ofstream类,两个类名中第1个字母i和o分别代表输入和输出,第2个字母f代表文件(file)。ifstream支持对文件的输入操作,ofstream支持对文件的输出操作。类ifstream继承了类istream,类ofstream继承了类ostream,类fstream继承了类iostream。;2. 与iostream类库有关的头文件
iostream类库中不同的类的声明被放在不同的头文件中,用户在自己的程序中用#include命令包含了有关的头文件就相当于在本程序中声明了所需要用到的类。可以换一种说法: 头文件是程序与类库的接口,iostream类库的接口分别由不同的头文件来实现。常用的有
iostream包含了对输入输出流进行操作所需的基本信息。
fstream用于用户管理的文件的I/O操作。
strstream用于字符串流I/O。
stdiostream用于混合使用C和C++的I/O机制时。
iomanip在使用格式化I/O时应包含此头文件。;;cerr和clog作用相似,均为向输出设备(显示器) 输出出错信息。因此用键盘输入时用cin流,向显示器输出时用cout流。向显示器输出出错信息时用cerr和clog流。
在iostream头文件中定义以上4个流对象用以下的形式(以cout为例):
ostream cout (stdout);
在定义cout为ostream流类对象时,把标准输出设备stdout作为参数,这样它就与标准输出设备(显示器)联系起来,;4. 在iostream头文件中重载运算符
“”和“”本来在C++中是被定义为左位移运算符和右位移运算符的,由于在iostream头文件中对它们进行了重载,使它们能用作标准类型数据的输入和输出运算符。所以,在用它们的程序中必须用#include命令把iostream包含到程序中。
#include iostream
在istream和ostream类(这两个类都是在iostream中声明的)中分别有一组成员函数对位移运算符“”和“”进行重载,以便能用它输入或输出各种标准数据类型的数据。对于不同的标准数据类型要分别进行重载,如
ostream operator (int );//用于向输出流插入一个int数据
ostream operator (float ); //用于向输出流插入一个float数据;ostream operator (char ); //用于向输出流插入一个char数据
ostream operator (char *); //用于向输出流插入一个字符串数据等。
如果在程序中有下面的表达式:
cout″C++″;
根据第18章所介绍的知识,上面的表达式相当于
cout.operator(″C++″)
″C++″的值是其首字节地址,是字符型指针(char*)类型,因此选择调用上面最后一个运算符重载函数,通过重载函数的函数体
您可能关注的文档
- 第六章齿轮传动重点[zl].ppt
- 第六讲树与二叉树.ppt
- 第六讲气流分布-室内环境.ppt
- 第六讲细胞器-生物膜system.ppt
- 第六讲世界工业文明的确立与拓展:工业革命时期资本主义的发展.pptx
- 第六讲_第9章回归_2011.ppt
- 第六讲绘制及编辑矩形、多边形及椭圆.ppt
- 第六讲五伦关系_长幼有序.ppt
- 第六课《文艺复兴和宗教改革共36张PPT].ppt
- 第六课坐着火车去旅行.ppt
- 2025年人教B版九年级历史上册月考试卷 .docx
- 2025年沪科版九年级历史下册阶段测试试卷 .docx
- 2025年苏科新版八年级历史上册月考试卷含答案.docx
- 企业安全管理制度的考核机制.docx
- 企业可持续发展战略研究论文中英文外文翻译文献.docx
- 会计学专科毕业论文.docx
- 关于烟草进销存管理的系统参考文献.docx
- Unit 6 Travelling around Asia Lesson4 课件(共12张PPT)沪教育教学资料.pptx
- 新概念英语第二册 Lesson34 quick work 课件(共20张PPT).pptx
- 九上道德与法治7.1促进民族团结公开课教案教学设计课件资料.pptx
文档评论(0)