Untitled

w代表宽字符,f代表file,s代表string,但指的是内存string对象。

其类型的不同并不会影响使用,通过继承机制,我们可以像如普通操作iostream一样操作fstream和sstream。

IO对象无初始化参数,无法拷贝也无法赋值。

由于在输入或输出时会改变状态,因此返回的是非const引用。

Untitled

Untitled

$cin>>a$返回的实际是$!\ cin.fail()$

当一个流发生错误,这个流就不能被继续使用了。

因为它进入了错误状态。

描述IO流对象的状态总共有4个,由四个位表示,分别是

  1. badbit,表示发生了无法恢复的问题
  2. failbit,表示发生了可以恢复的问题,当badbit为置位也为置位
  3. eofbit,表示流到了文件末尾
  4. goodbit,表示流没有发生错误,当错误位都为复位时为置位

因此,goodbit与failbit是正好相对的。

置位:将该位变为1

复位:将该位变为0

这四种状态被存储在iostate中,可以通过rdstate()来获取当前的iostate。

通过4个分别检测四种状态的情况的函数,即可对应进行检测。