资源描述:
《C++面向对象程序设计 教学课件 作者 张德慧 周元哲 主编第11章 C++的输入输出流.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《C++面向对象程序设计》教学内容第1章C++概述第2章类和对象第3章面向对象程序设计概述第4章进一步学习类和对象第5章堆与复制构造函数第6章继承性:派生类第7章运算符重载第8章虚函数和多态性第9章模板第10章类库和C++的标准模板库STL第11章输入输出流第12章异常处理第11章C++的输入输出系统:I/O流库11.1C++的输入输出流(I/OStreams)11.2重载输入输出运算符11.3输入输出格式控制11.4文件的输入输出操作11.1C++的输入输出流I/O流的概念输出流输入流输入/输出流为什么要有C++流类库C语言的输入输出系统不支持拥护
2、自定义的对象或数据类型,如一定义:structsample{inti;floatf;char*ch;}s1;不能用输出函数来输出以上结构变量:printf(“%sample”,s1);为什么要有C++流类库C++中,用户自定义的对象很多。C++的类机制允许它可以建立一个可控制的输入输出系统。可以通过重载“<<”和“>>”算符来解决以上的问题。流stream在数据从一个对象流动到另一个对象的过程中,无论是否对数据进行缓冲或对数据进行格式变换,这种流动都被抽象为流。流类库流类库是提供一组类,程序利用它们可以方便的与外部世界交换数据.C++的流类库是用继承
3、的方法建立起来的一个输入输出类库。流类库有两个基类,即streambuf类和ios类。streambuf类提供对缓冲区的低级操作,如缓冲区的设置、缓冲区的读写等。ios类用来完成检查错误的格式化输入、输出。流类库的结构流类的继承层次iosostreamistreamclogfstreamiostreamcerrcinifstreamofstreamcoutiostream.hI/O流类继承层次iosistreamistrstreamistream_withassignifstreamostreamostrstreamostream_withassig
4、nofstreamIostreamfstreamstrstreamstdiostreamI/O流类继承层次Classios;classistream:virtualpublicios;classostream:virtualpublicios;classiostream:publicistream,publicostream;又如:classistream_withassign:publicistream;classostream_withassign:publicostream;输出流和输出流对象输出流对象是信息流动的目标.ostream,ofst
5、ream和ostrstream是三个最重要的输出流.ostream类通过派生类ostream_withassign支持预先定义的流对象cout标准输出cerr标准错误输出,没有缓冲,发给它的内容立即输出clog类似于cerr,但有缓冲,缓冲区满时被输出.ofstream类支持磁盘文件输出.ostrstream类支持输出字符串。流类库和流C++中预定义了流类对象:标准输入流cin标准输出流cout非缓冲的出错流cerr和缓冲的出错流clog每个流都和一种与设备相联系:与输入设备(如键盘)联系的流为输入流;与输出设备(如屏幕)联系的流为输出流。流类对象的
6、操作流类对象在使用前要被建立,在使用后要被删除;使用特定的操作能够从流中获取数据称为提取操作<<或向流中添加数据称为插入操作>>带空格space的字符串的输入方法#includevoidmain(){//读入一串字符到line数组,以‘t’终止charline[100];cout<<“Typealineterminatedby‘t’”<>读入字符串时,在遇到第一个空格字符后输入将停止。11.2重载I/O运算符对于“<<”运算符
7、的重载istream&operator<<(inti);istream&operator<<(longI);istream&operator<<(doubled);istream&operator<<(charc);istream&operator<<(constchar*s);11.2.1重载输出算符“<<”定义输出运算符<<重载函数的一般格式如下:ostream&operator<<(ostream&stream,class_name,obj){函数体}函数中第一个参数是对ostream对象的引用。includeclass
8、Date{intmo,da,yr;public:Date(intm,intd,inty){mo=m;da=d