我目前正在学习C++ Primer第五版中的C++。由于信息似乎存在冲突,我对检查流状态的方法行为感到困惑。在第312页上,它声明:
如果设置了任何一个badbit、failbit或eofbit,则评估该流的条件将失败。
在接下来的一页上,它说s.fail()是
如果流中的failbit或badbit被设置则为true,并且当我们将流用作条件时执行的代码等效于调用!fail()。
这不合理,因为使用fail()的任何表达式只应知道failbit和badbit(因为它们组成fail()的值),然而!fail()等效于所有三个badbit、failbit和eofbit都为false。
这些看似矛盾的陈述是如何结合起来的?
如果设置了任何一个badbit、failbit或eofbit,则评估该流的条件将失败。
在接下来的一页上,它说s.fail()是
如果流中的failbit或badbit被设置则为true,并且当我们将流用作条件时执行的代码等效于调用!fail()。
这不合理,因为使用fail()的任何表达式只应知道failbit和badbit(因为它们组成fail()的值),然而!fail()等效于所有三个badbit、failbit和eofbit都为false。
这些看似矛盾的陈述是如何结合起来的?