これはやばい。次のコードが while ループを終了しない理由を教授に尋ねましたが、教授は教えてくれませんでした。私の理解では、入力ストリームに読み取る値がなくなると、cin は false の値を返し、while ループを終了させるはずです。私はしません。ループを介して入力値(整数のセット)プロセスを読み取り続け、さらに入力を待つようです。誰でも理由を教えてもらえますか? 以下はコードです。
# include <iostream>
using namespace std;
int main()
{
int iEvenSum = 0;
int iOddSum = 0;
int iNum;
// prompt user
cout << "Input any set of integers, separated by a space:\n";
cin >> iNum;
cout << "You input: ";
while (cin)
{
cout << iNum << " ";
if (iNum % 2 == 0)
iEvenSum = iEvenSum + iNum;
else
iOddSum = iOddSum + iNum;
cin >> iNum;
}
cout << "\n\nThe sum of Even numbers is " << iEvenSum << "." << endl;
cout << "The sum of Odd numbers is " << iOddSum << "." << endl;
return 0;
}