私は現在、C++ Primer 5th editionからC++を学んでいます。一見競合する情報のためにストリームの状態をチェックするメソッドの動作について混乱しています。 badbit
、failbit
、またはeofbit
のいずれかが設定されている場合は、312ページのそれはC++ストリームのeof()、fail()、bad()、およびgood()の違いは何ですか?
を述べ、そのストリームが失敗する評価される条件 。非常に次のページで
、それは流れの中failbit
またはbadbit
が
と
ことをコードに設定されている場合
s.fail()
は真であると述べています条件としてストリームを使用するときに実行されるのは、呼び出しに相当する です
!fail()
。
fail()
を使用する任意の式は唯一、badbit
の全てと同等の約failbit
とbadbit
(それらがfail()
の値を構成するものですので)、まだ!fail()
を知っている必要がありますので、これは意味がありません。failbit
、およびeofbit
がfalseです。これらの見かけ上矛盾する声明はどのように組み合わされますか?
http://en.cppreference.com/w/cpp/io/ios_base/iostateを参照してください。それはトピックの優れた概要を提供します。 –
"条件は!fail()を呼び出すのと同じです。"そうではありません。この本は別に言いましたか? –
@ n.m。私は[C++ Primer](https://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113)を直接引用しています。これは[this](http://stackoverflow.com/a/388282/2985951)で非常にupvoted答えが推奨されます。 – john01dav