C及C++程序设计 教学课件 作者 张富 第十九章.ppt

C及C++程序设计 教学课件 作者 张富 第十九章.ppt

ID:50043094

大小:106.50 KB

页数:37页

时间:2020-03-08

C及C++程序设计 教学课件 作者 张富 第十九章.ppt_第1页
C及C++程序设计 教学课件 作者 张富 第十九章.ppt_第2页
C及C++程序设计 教学课件 作者 张富 第十九章.ppt_第3页
C及C++程序设计 教学课件 作者 张富 第十九章.ppt_第4页
C及C++程序设计 教学课件 作者 张富 第十九章.ppt_第5页
资源描述:

《C及C++程序设计 教学课件 作者 张富 第十九章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十九章C++的I/O系统19.1C++的I/O系统概述19.2定义自己的插入操作符和提取操作符19.3格式化I/O19.4文本文件的I/O19.5二进制文件的I/O19.6文件的随机访问19.1C++的I/O系统概述19.1.1流与文件C和C++的I/O系统有一个重要的共同点,就是它们都是在流上操作。这个共同点,使得在同一个程序中,可以同时使用C和C++的I/O操作。在C和C++的I/O系统中,流分为两类:文本流和二进制流。文本流是一个字符序列。在文本流中,可能发生字符转换。二进制流则是一组字节序列。它与设备上的输入输出一一对应,没有进行任何转换。一个流与特定文件的联系,是通过“打开”操作

2、建立起来的。文件一打开,程序就可以同文件交换信息了。通过“关闭”操作,可以将流与特定的文件之间的联系断开。当流的打开是用于输出时,关闭操作将使相关缓冲区的信息写到外部设备上。这个过程称为刷新流。程序正常结束时,所有打开的文件都自动关闭。19.1.2C++的流C++流I/O是以类层次的方式实现的。基类是一个流,它可以表示文件或I/O设备。它定义了使用者看不见的低层操作。使用者接触的是由派生类定义的高层次的I/O函数。C++有四个预定义流,当C++程序开始执行时,它们会自动打开。这四个预定义流是:标准输入流cin;标准输出流cout;非缓冲型标准出错流cerr;缓冲型标准出错流clog。C++提

3、供的流I/O的一个明显优点,就是程序员可以不考虑数据的类型。例如,输出变量a的值cout<>”来完成类的I/O操作。19.2.1创建插入符例19.2.1为下面的类my_data定义插入符“<<”,使其能输出该类的三个数据i,f,c。类my_data的定义如下:classmy_data{ public:

4、inti;floatf;charch; set_val(inta,cloatb,charch){ i=a; f=b;ch=c; } };为创建类my_data的对象的插入符函数,其功能为输出类my_data对象的三个数据i,f,ch。可重载“<<”操作符如下:ostream&operator<<(ostream&stream,my_dataobj){ stream<

5、第一个参数是对流的引用(ostream&stream);第二个参数是出现在操作符“<<”的右边的对象(my_dataobj)。从上面这个具体的例子,可以写出如下的插入符函数的一般框架:ostream&operator<<(ostream&函数的流,类名&对象名) { //函数代码return函数的流; }重载插入符函数不能是类的成员函数。否则,就会假设左操作数(通过this指针隐含传送)是调用操作符函数的类的对象。但重载插入符的左边参数是流,而右边参数是类的对象。19.2.2重载提取符重载提取符“>>”的方法是和重载插入符“<<”一样的。其一般形式为:istream&operator>>(i

6、stream&函数的流,类名&对象名) { //函数代码return函数的流; }同插入符函数一样,提取符函数也不能是所操作类的成员函数。它或者是友元函数或者是独立的函数。例19.2.4为例19.2.1定义的类my_data创建提取符函数,使其接收从键盘输入的类数据成员的数据。函数定义如下:istream&operator>>(istream&my_stream,my_data&obj) {cout<<"Entervaluesi,fandch:"; my_stream>>obj.i>>obj.f>>obj.ch;returnmy_stream; }19.3格式化I/O在前面C++程序中所使用

7、的I/O流都是无格式的。数据的输入和输出格式,都是由提取操作符和插入操作符缺省规定的。C++有两种格式化输出输入方法:第一种方法是使用ios类的成员函数,第二种方法是使用一种称为控制器的特殊函数。本节分别讨论这两种方法。19.3.1用ios类的成员函数实现格式化输出例19.3.1应用标志设置的例子:#includemain() { doubled=123.456789;inti=123

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。