首页 > 代码库 > 9、流类库与输入/输出

9、流类库与输入/输出

就像C语言一样,c++语言中也没有输入/输出语句。但c++编译系统带有一个面向对象的输入/输出软件爱你包,它就是I/O流类库。

1、I/O流的概念及流类库结构

I/O流类库是C语言中I/O函数在面向对象的程序设计方法中的一个替换产品。

当程序与外界环境进行信息交换时,存在着两个对象,一个是程序中的对象,另一个是文件对象。

流是一种抽象,它负责在数据的生产者和数据的消费者之间建立联系,并管理数据的流动。程序建立一个流对象,并指定这个流对象与某个文件对象建立连接,程序操作流对象,流对象通过文件系统对所连接的文件对象产生作用。由于流对象是程序中的对象与文件对象进行交换的界面,对程序对象而言,文件对象有的特性,流对象也有,所以程序将流对象看作是文件对象的化身。

与输入输出设备交互也是通过I/O流类来实现的。流所涉及的范围远不止于此,凡是数据从一个地方传输到另一个地方的操作都是流的操作。像网络数据交换、进程数据交换等都是流操作。因此,一般意义下的读操作在流数据抽象中被称为从流中提取,写操作被称为向流中插入。

I/O流类库的基础是类模板,类模板提供了库中的大多数功能,而且可以作用于不同类型的元素,这些类模板都以"basic_"为前缀。

I/O流类库中有两组类模板实例:面向宽字符的和面向窄字符的。面向宽字符的类支持多字节的字符,面向窄字符的类支持单字节字符。头文件<iosfwd>中,有很多实例化类型。

在I/O流类库中,头文件<iostream>声明了8个预定义的流对象用来完成在标准设备上的输入/输出操作:cin、cout、cerr、clog、wcin、wcout、wcerr、wclog。

2、输出流

一个输出流对象是信息流动的目标,最重要的三个输出流是ostream,ofstream和ostringstream。

预先定义的ostream类对戏那个用来完成向标准设备的输出,包括:

cout标准输出

cerr标准错误输出,没有缓冲,发送给他的内容立即被输出

clog类似于cerr,但是有缓冲,缓冲区满时被输出。

ofstream类支持磁盘文件输出。

 

9、流类库与输入/输出