的情况下ifstream
在C++中,在什么条件下failbit
and badbit
标志设置?
根据cplusplus.com:
failbit当错误与操作本身的内部逻辑相关时,通常由输入操作设置,因此流上的其他操作也是可能的。尽管badbit通常在错误涉及流完整性丢失时设置,即使对流执行不同的操作,这种情况也可能持续存在。 badbit可以通过调用成员函数bad来独立检查。
In 简单的话,如果你得到一个number当期望检索一个letter, it's failbit
. If a serious发生错误,这会完全破坏从流中读取数据的能力 - 这是一个badbit
.
除了提到的标志之外,还有第三个非常相似 -eofbit
。您可以使用多个函数检查状态:ios::fail, ios::good and ios::bad
并且你可以熟悉iostream库也在 MSDN 资源中。
Finally,如果您搜索correct关于如何在读取文件(或访问某些文件或目录)时处理所有错误位和异常的解决方案,我强烈建议您阅读一篇非常全面且写得很好的文章“使用 ifstream 在 C++ 中读取文件:正确处理 badbit、failbit、eofbit 和 perror()”,最后你会发现一些理想的解决方案。这篇文章确实值得一读。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)