- 1、本文档共61页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10单元流类库与输入输出
第10章 流类库与输入输出 10.1 流、文件以及C++的基本流类和文件流类系统 *10.2 插入与提取运算符的重载 10.3 对输入输出格式进行控制 10.4 使用预定义的插入与提取运算符对文件流进行读写操作 10.5 使用类成员函数对文件流进行操作 10.6 text文件与binary文件 10.7 对数据文件进行随机访问 10.1 流、文件以及C++的基本流类和文件流类系统-- 参看书p232--234, 10.2与10.3节 C++语言中的输入输出操作(功能)是由它所预定义的诸I/O流类的一个类库所提供的。 ?? 1. 流(Stream) ? 流(stream)是一个逻辑概念,它是C++语言对所有外部设备的逻辑抽象,它代表的是某种流类类型的一个对象。C++的IO系统将每个外部设备都转换成一个称为流的逻辑设备,由流来完成对不同设备的具体操作。 ? 2. 文件(File) 文件(File)是一个物理概念,代表存储着信息集合的某个外部介质,它是C++语言对具体设备的抽象。如,磁盘文件,显示器,键盘。 所有流(类对象)的行为都是相同的,而不同的文件则可能具有不同的行为。如,磁盘文件可进行写也可进行读操作;显示器文件则只可进行写操作;而键盘文件只可进行读操作。 当程序与一个文件交换信息时,必须通过“打开文件”的操作将一个文件与一个流(类对象)联系起来。一旦建立了这种联系,以后对该流(类对象)的访问就是对该文件的访问,也就是对一个具体设备的访问。可通过“关闭文件”的操作将一个文件与流(类对象)的联系断开。 3. C++的基本流类系统 ? 在头文件 “iostream.h” 中说明(预定义)了一批基本流类: ? ios -- 基本流类的基类; istream -- 由ios派生,支持输入(提取“”)操作; ostream -- 由ios派生,支持输出(插入“”)操作; iostream -- 由istream与ostream共同派生,支持输入和输出双向操作。 C++预定义的流有: ? extern istream cin; -- 对象cin对应于键盘文件 extern ostream cout; -- 对象cout对应于显示器文件 extern ostream cerr; -- 对象cerr对应于显示器文件 extern ostream clog; -- 对象clog对应于显示器文件 ? 程序中可直接对上述4个预定义流类对象进行读写,而不必先进行“打开文件”的操作,使用完后也不需要进行“关闭文件”的操作(因为这些流类对象与文件之间的联系是预定义好的,可认为系统已为每一程序都隐含进行了对它们的打开与关闭操作)。 4. C++的文件流类系统 ? 在头文件“fstream.h”中说明(预定义)了一批文件流类,专用于磁盘文件: ? ifstream -- 由istream派生,支持从磁盘文件中输入(读入)数据; ofstream -- 由ostream派生,支持往磁盘文件中输出(写出)数据; fstream -- 由iostream派生,支持对磁盘文件进行输入和输出数据的双向操作。 ? C++中没有预定义的文件流(类对象),程序中用到的所有文件流类对象都要进行自定义。 *10.2 插入与提取运算符的重载 -- 参看书p231, 10.1节后半 对自定义类complex重载输入输出运算符“”与“”: #includefstream.h class complex { double r; double i; public: complex(double r0=0, double i0=0) { r=r0; i=i0; } complex operator +(complex c2); complex operator *(complex c2); friend istream operator (istream in, complex com); friend ostream operator (ostream out, complex com); }; 注意: 1. 通常总以友元方式来重载输入输出运算符,而且大都使用类似于上述的重载格式。 2. 其中的“operator”用
您可能关注的文档
- 电动数学准备.ppt
- 电介质n.ppt
- 生理第四讲.ppt
- 电子科技大学,c++第九单元多态性.ppt
- 电工(第单元串联谐振,并联谐振,传递函数)T.ppt
- 电工(第单元正弦量的特征值及表示法)T.ppt
- 电容式(改).ppt
- 电子设计自动化综合.ppt
- 电多极矩.ppt
- 用消化管.ppt
- 2025福建晋江市维通路桥工程有限公司招聘7人笔试历年参考题库附带答案详解.pdf
- 2025山东淄博鲁中机动车检测有限公司招聘13人笔试历年参考题库附带答案详解.pdf
- 2025中国人民财产保险股份有限公司六安市分公司招聘劳务人员1人(安徽)笔试历年参考题库附带答案详解.pdf
- 2025安徽芜湖鸠兹水务有限公司下属子公司第一批招聘及合成笔试历年参考题库附带答案详解.pdf
- 2025安徽舒城交投湖滨城市服务公司招聘笔试历年参考题库附带答案详解.pdf
- 2025福建清流县粮食购销有限公司招聘企业人员2人笔试历年参考题库附带答案详解.pdf
- 2025中节能风电甘肃区域公司招聘笔试历年参考题库附带答案详解.pdf
- 2025中化集团农业事业部招聘智慧平台产品经理1人(北京)笔试历年参考题库附带答案详解.pdf
- 2025云南新华书店集团有限公司公开招聘34人笔试历年参考题库附带答案详解.pdf
- 2025江苏太仓市城市建设投资集团有限公司公开招聘12人笔试历年参考题库附带答案详解.pdf
文档评论(0)