嵌入式Linux下C++程序设计--流类库iostream,fstream
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
为一个openmode,可避免删除一个现存文件中现有的内容 打开一个文件,用于输出。对于所有ofstream对象,此模式 是隐含指定的 如果一个文件存在,则打开它;否则该操作失败 如果一个文件不存在,则作为新文件打开它;如果文件已 存在,则该操作失败 打开一个文件。如果它已经存在,则删除其中原有的内容。 如果指定了ios::out,但没有指定ios::ate、ios::app和ios::in, 则隐含为此模式 以二进制模式打开一个文件(默认是文本模式)
输入/输出标准流类
如语句: cout<<"How old are you? "; cout 是类 ostream 的对象, << 是插入运算符,右面是 char* 类型,
所以,应该匹配上面第三个操作符。它将整个字符串输出,并返 回ostream流对象的引用。
同理,cin是istream的全局对象,istream类也存在友元。例如: istream& operator>>( int &n); istream& operator>>( float &f);
常用成员函数
bad() close() eof() fail() fill() get() getline() good() open() put() read() write() 如果出现错误则返回true 关闭一个流 如果处于文件结尾处则返回true 如果出现错误则返回true 控制默认填充字符 读取字符 读取一行字符 如果没有出现过错误则返回true 创建一个输入流 写字符 读取字条符 写字符
文件流类
类ofstream用于执行文件输出,该类有以下几个构
造函数:
ofstream::ofstream( filedesc fd );
ofstream::ofstream(filedesc
fd,
char*pch,
int
nLength ); ofstream::ofstream(const char*szName, int nMode = ios::out, int nProt = filebuf::openprot );
输入/输出标准流类
流实际上就是一个字节序列。在输入操作中,字节
从输入设备(如键盘、磁盘、网络连接等)流向内存 ;在输出操作中,字节从内存流向输出设备 ( 如显 示器、打印机、磁盘、网络连接等 )。如图9-1所示 。在C++语言中,针对流的特点,提供了如图9-2所 示的层次结构来描述流的行为,并给出了 I/O 流类 库的操作。
输入/输出标准流类
2.原理 cout 是 ostream 类的全局对象,它在头文件 iostream 中的定
义如下: ostream cout(stdout); //这里,stdout作为该对象构造时 的参数对应每种基本数据类型, ostream 类都存在友元,它 们都在iostream中声明。 例如: ostream& operator<<(int n); ostream& operator<<(float f); ostream& operator<<(const char*psz); //...
输入/输出标准流类
所谓流,是指数据从一个对象流向另一个对象。在
C++程序中,数据可以从键盘流入到程序中,也可 以从程序中流向屏幕或磁盘文件,把数据的流动抽 象为“流”。流在使用前要被建立,使用后要被删 除,还要使用一些特定的操作从流中获取数据或向 流中添加数据。从流中获取数据的操作称为提取操 作,向流中添加数据的操作称为插入操作。
第一个参数是指向要打开的文件名的字符串,后两个参数指 定文件的打开模式。文件打开模式的具体标志见下表。可以 用按位OR(|)运算符组合这些标志。
文件打开模式
文件打开模式
打开一个输出文件,用于在文件尾添加数据 打开一个现存文件(用于输入或输出)并查找到结尾 打开一个输入文件。对于一个 ofstream 文件,使用 ios::in 作
嵌入式Linux下QT程序设计
主讲:成宝宗
主要内容:
输入/输出标准流类(iostream)
文件流类(fstream)
输入/输出标准流类
输入/输出流的概念
就像 C 语言一样,C++ 语言中也没有输入 / 输出语句。
C++的I/O是以字节流的形式实现的,每一个C++编译 系统都带有一个面向对象的输入/输出软件包,这就是 I/O流类库。其中,流是I/O流类的中心概念。到目前 为止,我们一直在使用它。
istream& operator>>( char*psz);
//...
文件流类
fstream、ifstream和ofstream是文件流类,在头文件
fstream中定义。其中,fstream是ofstream和ifstream 多重继承的子类。文件流类不是标准设备,没有cout 那样预先定义的全局对象。文件流类支持对磁盘文件 的操作。要定义一个文件流类对象,须指定文件名和 打开方式。
输入/输出流类层次图
输入/输出标准流类
1.标准流的设备名
I/O 流的标准头文件是 iostream 。其中, ostream 类通过其派
生类ostream_withassign支持以下预先定义的流对象: cout:标准输出。默认设备为屏幕。 cerr :标准错误输出。没有缓冲,发送给它的内容立即被输 出,默认设备为屏幕。 clog:标准错误输出。有缓冲,当缓冲区满时被输出,默认 设备为打印机。 而 istream 类通过其派生类 istream_withassign 支持预先定义 的对象。 cin:标准输入。默认设备为键盘。
文件流类
类ifstream用于执行文件输入,该类有以下几个构造函数: ifstream::ifstream( filedesc fd ); ifstream::ifstream( filedesc fd, char*pch, int nLength ); ifstream::ifstream( const char*szName, int nMode = ios::in, int nProt = filebuf::openprot ); 其中最常用的都是最后一个构造函数。该函数有三个参数,