C++ 管理输入输出异常(Python版本)
发布时间
阅读量:
阅读量
在处理输入输出时
当我们输入时,可能会由于人的失误(错误理解了指令、打字错误等)、文件格式不符、错误估计了情况等原因造成读取失败。
当我们输出时,如果输出设备不可用、队列满或者发生了故障等,都会导致写入失败。
可能存在无数种输入输出错误的情况!然而,在C++中将所有可能出现的情况归纳为四种特定的状态被称为流状态(stream state)。每一种流状态都通过一种iostate类型的标志位来表示其特征。
流状态对应的标志位
| 标志位 | 意义 |
|---|---|
| badbit | 发生了(或许是物理上的)致命性错误,流将不能继续使用。 |
| eofbit | 输入结束(文件流的物理结束或用户结束了控制台流输入,例如用户按下了 Ctrl+Z 或 Ctrl+D 组合键。 |
| failbit | I/O 操作失败,主要原因是非法数据(例如,试图读取数字时遇到字母)。流可以继续使用,但会设置 failbit 标志。 |
| goodbit | 一切止常,没有错误发生,也没有输入结束。 |
ios_base类包含定义了这四个标志位以及iostate类型。同时ios类继承自ios_base类。因此可以通过采用ios::failbit替代ios_base::failbit的方式来减少输入量。
当流出现错误时,标志位会被设置为相应状态;通过下表中列出的函
全部评论 (0)
还没有任何评论哟~
