我正在处理以下代码。
#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?这是预定义的行为吗?