输入输出流对象.ppt
《输入输出流对象.ppt》由会员分享,可在线阅读,更多相关《输入输出流对象.ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、解析解析C+C+面向对象程序设计面向对象程序设计第第8 8章章 输入输入/输出流对象输出流对象4/21/20231第8章输入/输出流对象 内容提要内容提要n8.1 8.1 螺旋矩阵的输入输出问题螺旋矩阵的输入输出问题 n8.2 8.2 流流n8.3 8.3 无格式输入无格式输入/输出输出n8.4 8.4 输入输入/输出的格式控制输出的格式控制(重点重点)n8.68.6自定义类型对象的输入输出自定义类型对象的输入输出n8.7 8.7 文件的输入文件的输入/输出问题输出问题4/21/20232第8章输入/输出流对象提出问题提出问题n编程输出编程输出M*MM*M的螺旋矩阵,要求数据间的螺旋矩阵,要求
2、数据间距与距与M M相同。例如,相同。例如,4*44*4的螺旋矩阵,的螺旋矩阵,其间距为其间距为4:4:1 2 3 4 1 2 3 4 12 13 14 5 12 13 14 5 11 16 15 6 11 16 15 6 10 9 8 7 10 9 8 74/21/20233第8章输入/输出流对象分析问题分析问题nC+C+没有定义任何用于执行输入或输出没有定义任何用于执行输入或输出的语句,但可以使用的语句,但可以使用C C语言中的标准语言中的标准I/OI/O函数函数printf()printf()和和scanf()scanf()来解决此来解决此问题。问题。4/21/20234第8章输入/输出
3、流对象【例【例8-28-2】有如下程序:】有如下程序:/example8_2.cpp/example8_2.cpp#include#include int b=20;int b=20;float a=5.6;float a=5.6;int main()int main()printf(%dn,a);printf(%dn,a);scanf(%d,&a);scanf(%d,&a);scanf(%d,&b);scanf(%d,&b);printf(%dn,abc);printf(%dn,abc);return 0;return 0;该程序的运行结果为:该程序的运行结果为:161061273623 4
4、5 43499804/21/20235第8章输入/输出流对象nprintf()printf()与与scanf()scanf()存在以下两个缺点:存在以下两个缺点:1 1非类型安全非类型安全2 2不可扩充性不可扩充性4/21/20236第8章输入/输出流对象nC+C+使用类型安全(使用类型安全(type safetype safe)的)的I/OI/O流操作。不同类型的流操作。不同类型的I/OI/O流操作都是重流操作都是重载的,没有定义过载的,没有定义过I/OI/O功能的类型不具功能的类型不具备备I/OI/O操作的能力。操作的能力。C+C+标准库既可作标准库既可作为标准数据类型数据的为标准数据类型
5、数据的I/OI/O,也能用于,也能用于自定义类型的对象的自定义类型的对象的I/OI/O,这种扩展性,这种扩展性是是C+C+最有价值的特点之一。最有价值的特点之一。nC+C+用输入输出流来解决这个问题。下用输入输出流来解决这个问题。下面先介绍流的概念。面先介绍流的概念。4/21/20237第8章输入/输出流对象流流 n在在C+C+程序中,数据可以从键盘流入到程序中,数据可以从键盘流入到程序中,也可以从程序中流向屏幕或程序中,也可以从程序中流向屏幕或磁盘文件。把数据的流动抽象为流。磁盘文件。把数据的流动抽象为流。C+C+的输入输出操作是由流来处理的。的输入输出操作是由流来处理的。4/21/2023
6、8第8章输入/输出流对象流的概念流的概念 n所谓流(所谓流(streamstream)是指数据从一个位)是指数据从一个位置流向另一个位置。流是字节的序列。置流向另一个位置。流是字节的序列。4/21/20239第8章输入/输出流对象n输入输出是一种数据传递操作,可输入输出是一种数据传递操作,可以看作字符序列在计算机内存与外设以看作字符序列在计算机内存与外设之间的流动,之间的流动,C+C+将数据从一个对象到将数据从一个对象到另一个对象的流动抽象为另一个对象的流动抽象为“流流”。流。流动的方向不同,构成输入动的方向不同,构成输入/输出流,即输出流,即I/OI/O流。流。4/21/202310第8章输
7、入/输出流对象I/OI/O流流 n在在C+C+程序中,数据可以从键盘流入到程序中,数据可以从键盘流入到程序,也可以从程序流向屏幕或磁盘程序,也可以从程序流向屏幕或磁盘文件。从流中获取数据的操作称为提文件。从流中获取数据的操作称为提取操作,向流中添加数据的操作称为取操作,向流中添加数据的操作称为插入操作。数据的输入插入操作。数据的输入/输出就是通过输出就是通过I/OI/O流来实现的。流来实现的。4/21/202311第8章输入/输出流对象I/OI/O流类库的层次结构流类库的层次结构 nC+C+编译系统提供的编译系统提供的I/OI/O流类库含有两流类库含有两个平行基类:个平行基类:nstreamb
8、ufstreambufniosiosniosios类有类有4 4个直接派生类个直接派生类:n输入流类输入流类istreamistreamn输出流类输出流类ostreamostreamn文件流类文件流类fstreambasefstreambasen串流类串流类strstreambasestrstreambase4/21/202312第8章输入/输出流对象标准输入输出流对象标准输入输出流对象n标准标准I/OI/O流预定义了流预定义了4 4个流类对象:个流类对象:cincin、coutcout、cerrcerr、clogclog。n操作系统给把外设用文件名的方式进操作系统给把外设用文件名的方式进行管
9、理,因此程序设计要访问外设就行管理,因此程序设计要访问外设就跟访问文件一样方便。跟访问文件一样方便。4/21/202313第8章输入/输出流对象nI/OI/O分为无格式支持的低级分为无格式支持的低级I/OI/O和具有和具有格式支持的高级格式支持的高级I/OI/O。n无格式支持的低级无格式支持的低级I/OI/O以基本字节为操以基本字节为操作对象,有格式支持的高级作对象,有格式支持的高级I/OI/O把若干把若干字节组合成有意义的单位,如整数、字节组合成有意义的单位,如整数、浮点数、字符、字符串及用户自定义浮点数、字符、字符串及用户自定义类型等等。类型等等。4/21/202314第8章输入/输出流对
10、象无格式输入无格式输入/输出输出 n无格式输入无格式输入/输出就是按系统预定义的格输出就是按系统预定义的格式进行的输入式进行的输入/输出。输出。n按默认约定,每个按默认约定,每个C+C+程序都能使用标准程序都能使用标准I/OI/O流,如标准输入、标准输出。流,如标准输入、标准输出。ncincin用来处理标准输入,即键盘输入;用来处理标准输入,即键盘输入;coutcout用来处用来处理标准输出,即屏幕输出。它们被定义在理标准输出,即屏幕输出。它们被定义在iostream.hiostream.h头文件中。头文件中。n在使用在使用coutcout和和cincin前,要用编译预处理命令将所使前,要用编
11、译预处理命令将所使用的头文件包含到源程序中,其格式如下:用的头文件包含到源程序中,其格式如下:#include#include 4/21/202315第8章输入/输出流对象无格式输出无格式输出 n“”“”是预定义的插入运算符,作用在流类对象是预定义的插入运算符,作用在流类对象coutcout上,实现默认格式的屏幕输出。使用上,实现默认格式的屏幕输出。使用coutcout输输出表达式值到屏幕上的格式如下:出表达式值到屏幕上的格式如下:coutE1E2Em;coutE1E2Em;其中,其中,E1E1、E2E2、EmEm为均为表达式。功能是计算为均为表达式。功能是计算各表达式的值,并将结果输出到屏幕
12、当前光标位各表达式的值,并将结果输出到屏幕当前光标位置处。置处。4/21/202316第8章输入/输出流对象无格式输出无格式输出 ncoutcout是是ostreamostream流类的对象,它在流类的对象,它在iostreamiostream头文件中作头文件中作为全局对象定义为全局对象定义,其格式如下,其格式如下:ostream cout(stdout);ostream cout(stdout);其中,其中,stdoutstdout表示标准输出设备名(屏幕)。表示标准输出设备名(屏幕)。n在在ostreamostream流类中,对应每个基本数据类型定义运算符流类中,对应每个基本数据类型定义运
13、算符“”“”重载函数为友元,它们在重载函数为友元,它们在ostreamostream中声明:中声明:ostream&operator(ostream&dest,char*pSource);ostream&operator(ostream&dest,char*pSource);ostream&operator(ostream&dest,int source);ostream&operator(ostream&dest,int source);ostream&operator(ostream&dest,char source);ostream&operator”“”是预定义的提取运算符,作用在流类
14、对象是预定义的提取运算符,作用在流类对象cincin上,实现默认格式的键盘输入。使用上,实现默认格式的键盘输入。使用cincin将数据输入将数据输入到变量的格式如下:到变量的格式如下:cinV1V2Vn;cinV1V2Vn;其中,其中,V1V1、V2V2、VnVn都是变量。功能是暂停执行程序,都是变量。功能是暂停执行程序,等待用户从键盘输入数据,各数据间用空格或等待用户从键盘输入数据,各数据间用空格或TabTab键键分隔,输入数据类型要与接受变量类型一致,输完后,分隔,输入数据类型要与接受变量类型一致,输完后,按回车键结束。按回车键结束。4/21/202318第8章输入/输出流对象无格式输入无
15、格式输入 ncincin是是istreamistream流类的对象,它在流类的对象,它在iostreamiostream头文件头文件中作为全局对象定义,其格式如下:中作为全局对象定义,其格式如下:istream cin(stdin);istream cin(stdin);n在在istreamistream流类,对应每个基本数据类型定义运流类,对应每个基本数据类型定义运算符算符“”“”重载函数为友元,它们同样也在重载函数为友元,它们同样也在ostreamostream中声明:中声明:istream&operator(istream&sour,char istream&operator(istre
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 输入输出 对象
限制150内