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的类对象可以对字符串进行读写。