欢迎来到天天文库
浏览记录
ID:33457626
大小:1.65 MB
页数:61页
时间:2018-05-24
《嵌入式linux下c++程序设计--08流类库iostream,fstream》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、嵌入式Linux下QT程序设计主讲:成宝宗主要内容:输入/输出标准流类(iostream)文件流类(fstream)输入/输出标准流类输入/输出流的概念就像C语言一样,C++语言中也没有输入/输出语句。C++的I/O是以字节流的形式实现的,每一个C++编译系统都带有一个面向对象的输入/输出软件包,这就是I/O流类库。其中,流是I/O流类的中心概念。到目前为止,我们一直在使用它。所谓流,是指数据从一个对象流向另一个对象。在C++程序中,数据可以从键盘流入到程序中,也可以从程序中流向屏幕或磁盘文件,把数据的流动抽象为“流”。流在使用前要被建立,使用后要被删除,还要使用一些特定的操作从流中获取数据或
2、向流中添加数据。从流中获取数据的操作称为提取操作,向流中添加数据的操作称为插入操作。输入/输出标准流类流实际上就是一个字节序列。在输入操作中,字节从输入设备(如键盘、磁盘、网络连接等)流向内存;在输出操作中,字节从内存流向输出设备(如显示器、打印机、磁盘、网络连接等)。如图9-1所示。在C++语言中,针对流的特点,提供了如图9-2所示的层次结构来描述流的行为,并给出了I/O流类库的操作。输入/输出标准流类输入/输出流类层次图1.标准流的设备名I/O流的标准头文件是iostream。其中,ostream类通过其派生类ostream_withassign支持以下预先定义的流对象:cout:标准输出
3、。默认设备为屏幕。cerr:标准错误输出。没有缓冲,发送给它的内容立即被输出,默认设备为屏幕。clog:标准错误输出。有缓冲,当缓冲区满时被输出,默认设备为打印机。而istream类通过其派生类istream_withassign支持预先定义的对象。cin:标准输入。默认设备为键盘。输入/输出标准流类2.原理cout是ostream类的全局对象,它在头文件iostream中的定义如下:ostreamcout(stdout);//这里,stdout作为该对象构造时的参数对应每种基本数据类型,ostream类都存在友元,它们都在iostream中声明。例如:ostream&operator<<(i
4、ntn);ostream&operator<<(floatf);ostream&operator<<(constchar*psz);//...输入/输出标准流类如语句:cout<<"Howoldareyou?";cout是类ostream的对象,<<是插入运算符,右面是char*类型,所以,应该匹配上面第三个操作符。它将整个字符串输出,并返回ostream流对象的引用。同理,cin是istream的全局对象,istream类也存在友元。例如:istream&operator>>(int&n);istream&operator>>(float&f);istream&operator>>(char
5、*psz);//...输入/输出标准流类文件流类fstream、ifstream和ofstream是文件流类,在头文件fstream中定义。其中,fstream是ofstream和ifstream多重继承的子类。文件流类不是标准设备,没有cout那样预先定义的全局对象。文件流类支持对磁盘文件的操作。要定义一个文件流类对象,须指定文件名和打开方式。类ofstream用于执行文件输出,该类有以下几个构造函数:ofstream::ofstream(filedescfd);ofstream::ofstream(filedescfd,char*pch,intnLength);ofstream::ofst
6、ream(constchar*szName,intnMode=ios::out,intnProt=filebuf::openprot);文件流类类ifstream用于执行文件输入,该类有以下几个构造函数:ifstream::ifstream(filedescfd);ifstream::ifstream(filedescfd,char*pch,intnLength);ifstream::ifstream(constchar*szName,intnMode=ios::in,intnProt=filebuf::openprot);其中最常用的都是最后一个构造函数。该函数有三个参数,第一个参数是指向要
7、打开的文件名的字符串,后两个参数指定文件的打开模式。文件打开模式的具体标志见下表。可以用按位OR(
8、)运算符组合这些标志。文件流类文件打开模式打开一个输出文件,用于在文件尾添加数据打开一个现存文件(用于输入或输出)并查找到结尾打开一个输入文件。对于一个ofstream文件,使用ios::in作为一个openmode,可避免删除一个现存文件中现有的内容打开一个文件,用于输出。对于所有ofstream
此文档下载收益归作者所有