私は次のコードに取り組んでいました。
#include <iostream>
int main()
{
std::cout << "Enter numbers separated by whitespace (use -1 to quit): ";
int i = 0;
while (i != -1) {
std::cin >> i;
std::cout << "You entered " << i << '\n';
}
}
を使用しwhile (std::cin >> i)
たほうがよいことはわかっていますが、特定の出来事がわかりません。無効な入力を提供すると、入力ストリームがフェイルビット状態になるため、ループが無限になります。私の質問は、入力変数に何が起こるかということi
です? 私の場合、以前に入力した値に関係なく 0 になります。無効な入力の後に 0 に変わるのはなぜですか? これは事前定義された動作ですか?