IO对象无拷贝或赋值操
1.不能拷贝或IO对象赋值
2.进行IO操作的函数以引用方式传递和返回流,读写一个IO操作会改变其状态,因此传递和返回的引用不能是const的。
IO库条件状态:
srem::iostate iostate是一种机器相关的类型,提供了表达条件状态的完整功能 strm::badit 代表流已经崩溃,badbit表示系统错误(strm是一种IO类型,例如istream),如不可恢复的读写错误,通常情况下,一旦badbit被置位,流就无法使用。 strm::failbat 指示IO操作失败了 strm::eofbit 流已经到达了文件结束 strm::gooddit 指出流未处于错误状态,此值保证为0. s.eof() 若流s(例如cin)的eofbi置位,则返回true s.fail() 若流failbit或badbit置位,则返回true s.bad() 若流badbit置位,则返回true s.good() 若流处于有效状态,则处于true s.clear() 复位所有错误状态,如果加上参数如s.clear(failbit)则仅复位failbit(clear不接受参数的版本清除(复位)标志所有错误,执行clear()后,调用good会返回true) s.rdstate() 返回当前s流的状态,返回值为strm::iostate
管理条件状态