在C++中使用ifstream
的情况下,在什么条件下设置failbit
和badbit
标志?
最佳答案
根据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 。该文章确实值得阅读。