Oracle® Developer Studio 12.5:C++ 用户指南

退出打印视图

更新时间: 2016 年 7 月
 
 

13.2 iostream 交互的基本结构

通过将 iostream 库包括进来,程序可以使用许多输入流或输出流。每个流都具有某些源或接收器,如下所示:

  • 标准输入

  • 标准输出

  • 标准错误

  • 文件

  • 字符数组

流可以被限定到输入或输出,或同时具有输入和输出。iostream 库使用两个处理层来实现这些流。

  • 较低层实现了序列,即字符的简单流。这些序列由 streambuf 类或从其派生的类实现。

  • 较高层对序列执行格式化操作。这些格式化操作由 istreamostream 类实现,这两个类将从 streambuf 类派生的类型的对象作为成员。附加类 iostream 用于执行输入和输出的流。

标准输入、输出和错误由从类 istreamostream 派生的特殊类对象处理。

分别从 istreamostreamiostream 派生的 ifstreamofstreamfstream 类用于处理文件的输入和输出。

分别从 istreamostreamiostream 派生的 istrstreamostrstreamstrstream 类用于处理字符数组的输入和输出。

打开输入或输出流时,要创建其中一种类型的对象,并将流的 streambuf 成员与设备或文件关联。通常通过流构造函数执行此关联,因此不用直接使用 streambufiostream 库为标准输入、标准输出和错误输出预定义了流对象,因此不必为这些流创建自己的对象。

可以使用运算符或 iostream 成员函数将数据插入流(输出)或从流(输入)提取数据,以及控制插入或提取的数据的格式。

如果要插入和提取新的数据类型(其中一个类),通常需要重载插入和提取运算符。