c++中数据I/O的流类是什么意思
展开全部
首先就说一下C++标准模板库里面一些用来实现面对对象的数据输入输出的流类.它可以实现C标准库I/O函数所不具备的一些功能.当然这些六库也都位于std名空间里面,一般都是已stream做最后几个字母.
如果要使用C++的I/O流类,需要包含iostream或者fstream之类的头文件.
现在讲一些I/O流的模板类的派生关系
(这里必须注意一点STL是有多个版本的,所以可能我这里说的内容可能跟你机子上的STL实际情况有点偏差,不过大体的原理应该是大体相似的)
首先最底层的模板类是basic_streambuf,具有基本的缓存处理功能,其他的模板类都是它的友员类,这样子可以利用他进行一些底层的读写操作
接下来更高层的是ios_base类,具有一些基本的读写格式设置,读写状态和错误检测功能,它不是一个模板类不过其他的模板类都是从它派生出来的.(比如I/O读写格式控制标志就在该类定义)
然后便是basic_ios模板类继承ios_base,它在ios_base类的基础上将字符特性考虑进来,提供了基本的字符数据输入输出处理,其余各个模板类都与该类有继承关系.
(比如basic_istream模板类和basic_ostream模板类,和basic_iostream)
而用于文件数据读取和写入的basic_ifstream,basic_ofstream,basic_fstream则分别继承于basic_istream模板类和basic_ostream模板类,和basic_iostream
C++实例化以上的I/O流类以后提供了便于操作单字节和宽字节的流类,例子如下:
单字节流类:ios istream ostream iostream ifstream ofstream fstream
宽字节流类:wios wistream wostream wiostream wifstream wofstream wfstream
如果要使用C++的I/O流类,需要包含iostream或者fstream之类的头文件.
现在讲一些I/O流的模板类的派生关系
(这里必须注意一点STL是有多个版本的,所以可能我这里说的内容可能跟你机子上的STL实际情况有点偏差,不过大体的原理应该是大体相似的)
首先最底层的模板类是basic_streambuf,具有基本的缓存处理功能,其他的模板类都是它的友员类,这样子可以利用他进行一些底层的读写操作
接下来更高层的是ios_base类,具有一些基本的读写格式设置,读写状态和错误检测功能,它不是一个模板类不过其他的模板类都是从它派生出来的.(比如I/O读写格式控制标志就在该类定义)
然后便是basic_ios模板类继承ios_base,它在ios_base类的基础上将字符特性考虑进来,提供了基本的字符数据输入输出处理,其余各个模板类都与该类有继承关系.
(比如basic_istream模板类和basic_ostream模板类,和basic_iostream)
而用于文件数据读取和写入的basic_ifstream,basic_ofstream,basic_fstream则分别继承于basic_istream模板类和basic_ostream模板类,和basic_iostream
C++实例化以上的I/O流类以后提供了便于操作单字节和宽字节的流类,例子如下:
单字节流类:ios istream ostream iostream ifstream ofstream fstream
宽字节流类:wios wistream wostream wiostream wifstream wofstream wfstream
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询