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