c++之输入输出流

c++流的概念

  • 流是有向数据流动的描述,指数据流动的物理通道和方向。在C++中数据的输入输出是以字节为单位,以字节流的形式实现。
  • 数据从输入设备流向内存称为输入流,数据从内存流向输出设备称为输出流
  • c++中的输入输出流的处理功能组织成下图流类库
    c++之输入输出流

流类库

  • istream类,标准输入流,支持流输入操作
  • ostream类,标准输出流,支持流输出操作
  • iostream类,通过多重继承从istream和ostream类派生而来,同时支持流输入和流输出
  • ifstream类支持文件流输入操作
  • ofstream类支持文件流输出操作
  • fstream类支持文件输入输出流操作
  • sizeof运算符

格式化输出

  • 一种是调用ios类的格式控制成员函数:ios类设置了许多格式标志(如对齐方式、浮点数用定点表示还是科学表示、进制、大小写、等等)。首先通过调用ios类的setf()和unsetf()成员函数对格式标志进行控制,然后调用ios类实现格式控制的成员函数(如设置输出宽度width()、输出精度precision()、填充字符fill(),等等)完成格式化I/O。
  • 另一种是使用操纵符。操纵符是用来控制输入输出格式的指令,可直接用于提取和插入算符(“>>”和“<<”)的输入输出链之后,而不像格式控制成员函数那样必须被单独调用。不带参数的操纵符在iostream头文件中定义,包括dec、hex、oct、ws、endl、等;带参数的操纵符在iomanip头文件中定义,包括setw()、setfill()、setprecision()、setiosflags()、resetiosflags、等。

常用setw(),setfill(),setprecision(),

文件操作

打开文件

下列两种方式

  • 定义文件流对象的同时通过文件流类的构造函数打开文件
    文件流类名 对象名(文件名,文件打开方式,文件保护方式)
  • 先使用无参构造方式定义文件流对象,再用文件流对象调用文件流类的open成员函数
    文件流对象.open(文件名,文件打开方式,文件保护方式)

文件打开方式和文件保护方式如下:
c++之输入输出流

读写文件与关闭文件

文件流对象<< //写文件
文件流对象>> //读文件

文件流对象.close()

举例

ofstream outfile(“data”);
//将数据按照文本方式写入data文件
outfile<<“hello world”;
outfile.close():