文档介绍:第8章 I/O系统和文件
流
格式化I/O
文件流
流
流的概念
预定义的C++流
重载I/O运算符
流
流是一种生成或使用信息的抽象。C++的I/O系统把流连接到物理设备上,它的一个重要特点是不论它所连接的设备是什么,都采用相同的方式进行操作。
流有两种基本形式:文本流和二进制流。
文本流用于传递字符
二进制流用于传递所有数据类型的数据。
对流可以进行的最基本的操作是:打开和关闭。打开流可以让流连接到文件,而关闭操作可以让流断开与文件的连接
预定义的C++流
cin
标准输入流
cout
标准输出流
cerr
连接到标准输出的流,用于写入调试和错误信息
采用非缓冲的方式
clog
连接到标准输出的流,用于写入调试和错误信息
以缓冲的形式工作
重载I/O运算符
由于“>>”的作用是向流中插入,“<<”的作用是从流中提取,所以把重载这两个运算符的函数称为插入函数和提取函数。
插入函数的通式:
ostream &operator<<(ostream &stream, 类名 obj)
{
//需要输出数据的相关代码
return stream;
}
定义提取函数的通式是:
istream &operator>>(istream stream, 类名&obj)
{
//需要输入数据的相关代码
return stream;
}
创建一个插入函数
定义一个是友元函数的插入函数
定义提取函数
格式化I/O
使用ios成员函数进行格式化输入输出
使用操控符实现格式化输入输出
使用ios成员函数进行格式化输入输出
所有的流都有一套与它相关的格式标识,这些标识用于格式化流中的数据。
类ios就定义了一个fmtflags数据成员,这个数据成员以枚举的方式定义了很多的常量来表示输出的格式。