【C++】标准IO库

本文基于《C++ Primer》详细介绍了C++的IO库,包括条件状态、输出缓冲区管理、文件输入输出操作。讨论了如何检查文件打开状态、管理缓冲区、使用fstream对象进行读写,并探讨了文件模式及其在多文件操作中的应用。
摘要由CSDN通过智能技术生成

本文章根据《C++ Primer》总结而来


IO类型在三个独立的头文件中定义:

  • iostream定义读写控制窗口的类型
  • fstream定义读写已命名文件的类型
  • sstream定义读写存储在内存中的string对象

IO对象不可复制或赋值
1、只有支持复制的元素类型可以存储在vector或其他容器里,所以流对象是不能够存储在vector或其他容器里的。
2、形参或返回类型不能为流类型。如果要传递或返回IO对象,则必须传思或返回指向该对象的指针或引用。

条件状态

所有流对象都包含一个条件状态成员,该成员由setstate和clear操作管理。
这里写图片描述
badbit标志着系统级的故障,如无法恢复的读写错误。
failbit导致的问题通常是可以修正的。
efobit是在遇到文件结束符时设置的。

检查流状态最简单的方法是检查其真值。

if(cin) {
  ...} //直接检查流状态
while(cin >> word) {
  ...} //检测条件表达式返回的流

输出缓冲区管理

每个IO对象管理一个缓冲区,用于存储程序读写的数据。

输出缓冲区的刷新

  • endl操纵符–输出一个换行符并刷新缓冲区
  • flush操纵符–不在输出中添加任何字符并刷新缓冲区
  • ends操纵符–插入空字符null并刷新缓冲区
  • unitbuf操纵符–在每次执行完写操作都刷新流
  • nounitbuf操纵符–将流恢复为正常使用的,由系统管理的缓冲区刷新方式
cout << unitbuf << "first" << 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值