在C++中使用ifstream的情况下,在什么条件下设置failbitbadbit标志?

最佳答案

根据cplusplus.com:



简而言之,如果在希望检索字母时得到数字,则它是failbit。如果发生严重的错误,这完全破坏了从流中读取数据的能力-这是badbit

除了提到的标志外,还有第三个非常相似的eofbit。您可以使用以下几个功能检查状态: ios::fail ios::good ios::bad

您也可以在MSDN资源上熟悉iostream library

最后是,如果您搜索正确的解决方案,该解决方案是如何在读取文件(或访问某些文件或目录)时处理所有错误位和异常,我强烈建议您阅读非常全面且写得很好的文章“Reading files in C++ using ifstream: dealing correctly with badbit, failbit, eofbit, and perror()”,在结尾处,您会发现一些 Ideal solutions 。该文章确实值得阅读。

10-08 05:12