3

私は次のコードに取り組んでいました。

#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 に変わるのはなぜですか? これは事前定義された動作ですか?

4

1 に答える 1