C++初学者指南 第十一篇(13)
来源:互联网 发布:淘宝店被降权了怎么办 编辑:程序博客网 时间:2024/06/07 00:26
基本技能11.12:检查输入输出的状态
C++的输入输出系统针对每一个输入输出操作都维护其状态信息。输入输出流的状态信息是通过一个iostate类型的对象来描述的。这个对象是一个枚举类型,取值的含义如下:
名称
含义
ios::goodbit
没有错误发生
ios::eofbit
当遇到文件结尾的时候,被置为1;否则置为0
ios::failbit
当有可能发生非致命性的输入输出错误的时候被置为1;否则置为0
ios::badbit
当发生致命性输入输出错误的时候被置为1,;否则被置为0
我们有两种方式来获取输入输出的状态信息。第一,就是调用rdstate()函数。他的原型如下:
iostate rdstate();
函数返回当前的错误标记。从上面的iostate类型的取值列表中我们可以猜测的出来,rdstate()函数在没有错误出现的情况下返回的是ios::goodbit;否则返回的是错误对应的值。
另外一种判断是否发生了某种错误的方法就是使用ios的一个或者多个成员函数:
bool bad();
bool eof();
bool fail();
bool good();
其中的bool eof()我们之前已经讨论过了。函数bad()在badbit标志位被设置的时候返回true。fail()函数在failbit被设置的时候返回true。good()函数在没有错误的情况下返回true。其他情况下他们都返回false。
一旦发生了错误,我们应该在程序继续运行之前清除这些错误。此时我们可以使用函数clear(),他的原型如下:
void clear(iostate flags = ios::goodbit);
当其中的参数flags为缺省的ios::goodbit的时候,所有的错误标记都会被清除。否则,我们可以把flags标记设置为自己需要清除的错误标记。
在继续进行下面的内容之前,我们可以在之前的程序中加入这里提到的这些状态报告函数来对我们程序的错误检查力能进行扩展。
- C++初学者指南 第十一篇(13)
- C++初学者指南 第十一篇(1)
- C++初学者指南 第十一篇(2)
- C++初学者指南 第十一篇(3)
- c++初学者指南 第十一篇(4)
- C++初学者指南 第十一篇(5)
- C++初学者指南 第十一篇(6)
- C++初学者指南 第十一篇(7)
- C++初学者指南 第十一篇(8)
- C++初学者指南 第十一篇(9)
- C++初学者指南 第十一篇(10)
- C++初学者指南 第十一篇(11)
- C++初学者指南 第十一篇(12)
- C++初学者指南 第十一篇(14)
- C++ 初学者指南 第一篇(13)
- C++:初学者的指南
- Objective-C 初学者指南
- Objective-C 初学者指南
- iolist跟list有什么区别?(经典)
- C数据类型总结
- yum介绍
- C#学习笔记
- explicit call dynamic library in windows and linux platform
- C++初学者指南 第十一篇(13)
- boost::iostream::file使用时,会碰到的几个问题
- 解决itunes升级ios不能续传和下载慢的问题
- Mysql常见问题和错误
- 看看你做的怎么样 一名企月薪8万的面试题:绝对10人做8个人错
- C#反射总结(转)
- 关于数据库增长取消错误的消息~(数据库 '' 中文件 '' 的自动增长在 17719 毫秒后 已取消或出现超时)
- android中的annotation用法
- log4j 版本冲突 log4j-1.2.6.jar 和 log4j-1.2.15.jar