C++ 面向对象程序第13章.ppt

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++ 面对对象程序设计 授课老师: 第13章输入/输出流类库与文件操作 本章要点 13.1 流类体系 13.2 文件操作 本章要点 I/O流、流类与流类体系的概念 流的输入输出控制格式 文件的概念及文件的使用 文件流类体系结构 文本文件与二进制文件的使用 13.1.1流(stream) 流(stream)是一种抽象。它负责在数据的生产者和数据的消费者之间建立联系,并负责管理数据的流动。在C++程序中,数据可从键盘流入程序中,也可以从程序流向屏幕或磁盘文件。C++的流类主要是以两个类为基础的;ios类和streambuf类,由ios类和streambuf类所派生出来的类各自负责不同的工作。ios类及其派生类用于处理与输入、输出有关的操作,例如读写文件、键盘输入和屏幕输出等。 C++语言在开始使用流类时,就预定义了如下4个常用的输入/输出流对象 cin:是istream类的对象,用于处理键盘输入。 cout:是ostream类的对象,用于处理屏幕输出。 cerr:是ostream类的对象。用于处理出错信息,并直接输出。 clog:是ostream类的对象,用于处理出错信息,并使用缓冲区输出。 13.1.2输入/输出流 1.输出流 cout是ostream类的对象,因为它所指向的是标准输出设备(显示器屏幕),所以它在iostream头文件中作为全局对象进行定义。 cout对象定义格式如下: ostream cout(stdout); cout默认指向的C++中的标准设备名,作为其构造函数的参数使用。 在iostream.h头文件中,ostream类对应每个基本数据类型都有其友元函数对左移操作符进行了友元函数的重载。 2.输入流 流的输入采用提取运算符“”来实现,其左操作数为输入流类istream的对象。 istream已经预定义了对C++内部数据类型的输入方法。 C++中预定义了一个标准输入流对象cin,它对应于C语言中的stdin,用于从标准输入设备(通常为键盘)读入数据。下面的例子从标准输入设备读入整型数据和双精度数据,然后输出。 【例13-1】读入一个整型数据和一个双精度数据并输出 #include stdafx.h #include stdio.h #include iostream.h void main() { int i; double d; cini; cind; couti,dendl; getchar(); } 程序执行后输出结果如下 3 5.6Enter 3,5.6 提取运算表达式的值自然为输入流对象,上面例子中的两行输出语句可以连写为cid; 提取运算符可以重载,由用户定义如何输入自定义的类对象。在重载提取运算符时,同时应将其重载为类的友元,而不是成员。对于任何给定的用户定义类型T,定义一个operator函数,用于从指定的输入流读取T类型的对象。 【例13-2】Point类重载插入运算符示例 #include stdafx.h #include stdio.h #include iostream.h class point { int x,y; public: point(int x,int y) { point::x=x; point::y=y; } point operator +(point p) { return point (x+p.x,y+p.y); } //接下页 point operator -(point p) { return point (x-p.x,y-p.y); } friend istream operator (istream in,point pt); friend ostream operator (ostream ,point ); }; istream operator (istream in,point pt) // 接下页 { char ch; inch; if (ch == c) { inpt.x; inch; inpt.y; inch; } return in; } 13.1.3流的格式控制 (1)格式控制成员函数 ios类定义的格式控制成员函数必须作为流对象(如:cout、cin)的成员函数来使用,因此其调用格式为: 流对象.格式控制成员函数(实参); (2)预定义格式控制函数。C++直接提供的预定义格式控制函数为普通函数。因此其调用格式为: 预定义格式控制函数(实参): 1.流的输出格式控制 (1)输出宽度及填充字符。输出宽度可通过输出格式控制成员函数width(n)、填充成员函数fill(c)与预定义格式控制函数setw(n)实现。其

文档评论(0)

bm5044 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档