8.1 IO类
8.1.1 IO对象无拷贝或赋值
不能对IO对象进行拷贝或者赋值
不能将形参或者返回类型设置为流类型
进行IO操作的函数通常用引用方式传递或者返回流
读写IO对象会改变其状态,不能用const
8.1.2 条件状态
一个错误IO的例子:
int ival;
cin>>ival;//键入abc,读操作失败
一旦一个流发生错误,后续的IO操作都会失败。所以我们需要在使用一个流之前检查它是否处于良好的状态。最简单的方法就是将它当做一个条件来使用
while(cin>>word)
//code
查询流的状态
管理条件状态p281
8.1.3 管理缓冲输出
导致缓冲刷新(数据真正写到输出设备或文件)的原因有很多
- 程序正常结束
- 缓冲区满了
- endl
- 写到cerr的内容立刻刷新
- 读写流关联导致刷新
刷新输出缓冲区
6. endl 内容+换行
7. flush 内容
8. ends 内容+空字符