概念:在使用io类型和对象时,需要定义io头文件
下面三个基本的头文件中:
- iostream定义了用于读写流的基本类型
- fstream定义了读写命名文件的类型
- sstream定义了读写内存string对象的类型
具体展开
宽字符
为了支持使用宽字符的语言,标准库定义了一组类型和对象来操纵wchar_t类型数据,宽字符版本的类型和函数的名字以一个w开始。宽字符版本的类型和对象与其对应的普通char版本类型定义在同一个头文件中。
IO类型间的关系
标注库是我们能忽略不同类型的流之间的差异,这是通过继承机制实现的,简单来说,继承机制使我们可以声明一个特定的类继承自另一个类,我们通常可以将一个派生类(基础类)对象当作其基类(被继承的类)对象来使用。比如类型ifstream和istringstream都继承自istream,因此我们就可以通过使用istream对象一样来使用ifstream和istringstream对象。
IO对象不能被拷贝和赋值
ostream out1,out2;
out1=out2;//错误,流对象不能被赋值
ostream print(ostream)//错误,流对象不能被初始化
out1=printf(out2)//错误,流对象不能被拷贝
因为读写一个io对象,对象的状态是会被改变的,所以流对象也不能用const来修饰,在函数中返回流对象应该返回其引用。