2024年4月28日发(作者:)

C++

标准库之

iostream

库的学习笔记(一)

iostream

库的介绍和

istream,ostream

类以

及cin,cout对象

c语言的标准输入输出库是stdio.h是一个函数库而不是类库。

其中包括了我们最常使用的scanfprintf都是一些独立的全局函数,因为C语言是不支持类的。

c++的标准输入输出库iostream是一个类库,以类的形式组织,使用该库中的类要先引用命名空

间:usingnamespacestd;

最常使用的是cin和cout,这两个都是对象,cin是istream类的对象,cout是ostream类的对

象,而输入的cin>>与输出时的cout<<中的左移<<与右移>>分别是istream类与ostream类

的操作符重载。

iostream库里面创建了3个标准流对象:

1cin表示标准输入的istream对象,cin可以使我们从设备读取数据。

2cout表示标准输出的ostream对象,cout可以使我们向设备写入数据。

3cerr表示标准错误的ostream对象,cerr是导出程序错误消息的地方,只能向屏幕设备写数据。

标准的流对象都有默认的设备:

cout<

cin>>data;cin默认的设备是键盘缓冲区。

iostream库由以下几个库组成:fstream,iomainip,ios,iosfwd,iostream,istream,ostream,

sstream,streambuf,strstream。

istream用来访问操作系统的输入流,ostream访问操作系统的输出流,iostream同时继承了这两

个类。

在ostream类中,重载了许多的左移<<操作符,对每种基本数据类型都做了重载,比如

&ostreamoperator<<(ostream&temp,intsource);

&ostreamoperator<<(ostream&temp,charsource);

&ostreamoperator<<(ostream&temp,char*source);

由于以上重载返回的数据类型都是ostream的引用,ostream又可以作为左值,所以可以实现

cout<<"abc"<

同样在istream类中,也重载了许多右移>>操作符,对每种基本数据类型都做了重载,比如

&istreamoperator>>(istream&temp,intsource);

&istreamoperator>>(istream&temp,charsource);

以上是终端标准输入输出设备的输入输出,也就是一般pc机的键盘和显示器的输入输出。

C++标准库之iostream库的学习笔记(二)fstream库以及ofstream类的使用

iostream库不仅支持终端设备的输入输出,还支持文件的输入输出,和文件有关的输入输出类声明

在fstream头文件中,有三个类负责文件的输入输出

1)ifstream类:从istream类派生。

2)ofstream类:从ostream类派生。

3)fstream类:从iostream类派生。

由于文件的输入输出和键盘鼠标的输入输出是不一样的,一般pc机只有一个键盘设备,所以

iostream库内部声明了一个istream类的对象cin,这个对象负责从键盘获取数据,而文件设备在

系统中是由许多的,所以iostream库内部无法给你为机器的每个文件都创建一个负责获取数据的

ifstream对象和负责写入数据的ofstream对象,所以我们要针对一个文件进行读取或写入数据的

时候都要自己创建一个ifstream或ostream类的对象来用。

ofstream类的默认构造函数如下:

ofstream::ofstream(constchar*filename,intmode=ios::out,intopenport=

filebuf::openport);

filename是要打开的文件名,

mode是打开的方式,

openport是打开文件的属性。