c++对IO流的操作必须使用特定的类对象进行操作。
上图就是c++中相关IO操作的类封装,
ios_base: 是最基本的类,存放IO流的基本信息
ios: ios类是ios_base的子类。是相应的IO流的基类
Istream,ostream: 这两个类都是ios的子类,分别是输入流和输出流。 我们使用的cin是istream的类对象,cout,cerr是ostream的类对象。
ifstream: 类ifstream是stream的子类,对istream输入流的功能进行了细分,ifstream类的对象表示是对文件(IO设备)进行输入输出操作。
istringstream: 和类ifstream类似,也是istream类的功能拓展,表示对字符串进行输入输出(数据类型stringstream也是一个IO设备)。
ofstream,ostringstream: 适合输入对应的输出操作,是哦stream的子类。
iostream: 这个类对象是继承了istream和ostream两个对象(多继承),因为istream表示输入流,ostream表示输出流,为了方便,类iostream同时继承了输入类和输出类,这样一个类就可以同时表示输入和输出流了。
fstream: iostream将输入和输出操作结合在了一起,fstream是iostream的子类,fstream是将文件的输入输出操作结合起来了。 通过fstream的类对象可以对文件进行读写
stringstream: 和fstream是类似的,将字符串的输入和输出结合了起来,通过stringstream的类对象可以对字符串进行读写。