私はテキストファイルからいくつかの変数を取るプログラムを書いています。 プログラムがEOFを検出すると、
はデータの入力を終了します。ifstream.good()とbool(ifstream)の違い
int main()
{
int val, count = 0;
ifstream fileIn;
fileIn.open("num.txt");
fileIn >> val;
while (fileIn)
{
++count;
cout << "number: " << val << endl;
fileIn >> val;
}
cout << "count: " << count << endl;
fileIn.close();
return 0;
}
num.txt
ファイル:11 22 33 44
プログラムの出力:
number: 11
number: 22
number: 33
number: 44
count: 4
すべてがOKです。私はfileIn
からfileIn.good()
にwhile条件のセクションを変更した場合でも、
プログラムの出力は次のようになります。それは今、最後の値をスキップし
number: 11
number: 22
number: 33
count: 3
。 なぜこれが起こっているのですか。fileIn
とfileIn.good()
の違いは何ですか?
http://en.cppreference.com/w/cpp/io/basic_ios/good – chris