C++ Prime 中文版第五版 第八章 IO库 笔记

1.头文件iostream中定义了用于读写流的基本类型,fstream中定义了读写命名文件的类型,sstream定义了读写内存string对象的类型。
2.标准库使我们能忽略这些不同类型的流之间的差异,是通过继承机制来实现的。
3.IO对象无拷贝或赋值,由于不能拷贝IO对象,因此我们也不能将形参或返回类型设置为流类型。进行IO操作的函数通常以引用方式传递和返回流。读写一个IO对象会改变其状态,因此传递和返回的引用不能是const的。
4.IO库条件状态:
strm::iostate strm是一种IO类型,iostate是一种机器相关的类型,提供了表达条件状态的完整功能。
strm::badbit strm::badbit用来指出流已崩溃。
strm::failbit strm::failbit用来指出一个IO操作失败了。
strm::eofbit strm::eofbit用来指出流到达了文件结束。
strm::goodbit strm::googbit用来指出流未处于错误状态。此值保证为零。
s.eof() 若流s的eofbit置位,则返回true。
s.fail() 若流s的failbit或badbit置位,则返回true。
s.bad() 若流s的badbit置位,则返回true。
s.good() 若流s处于有效状态,则返回true。
s.clear() 将流s中所有条件状态复位,将流的状态设置为有效。返回void。
s.clear(flags) 根据给定的flags标志位,将流s中对应条件状态复位。flags的类型为strm::iostate。返回void。
s.setstate(flags) 根据给定的flags标志位,将流s中对应条件状态位置位。flags的类型为strm::iostate。返回void。
s.rdstate() 返回流s的当前条件状态,返回值类型为strm::iostate。
5.一个流一旦发生错误,其上后续的IO操作都会失败。由于流可能处于错误状态,因此代码通常应该在使用一个流之前检查它是否处于良好状态。确定一个流对象的状态最简单的方法就是将它当做一个条件来使用(while(cin>>word))
6.badbit表示系统级错误,如不可恢复的读写错误。通常情况下,一旦badbit被置位,流就无法再使用了。在发生可恢复错误后,failbit被置位,如期望读取数值却读出一个字符等错误。这种问题通常是可以修正的,流还可以继续使用,如果到达文件结束位置,eofbit和failbit都会被置位。goodbit的值为0,表示流未发生错误。如果badbit、failbit和eofbit任一个被置位,则检测流状态的条件会失败。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值