【发布时间】:2015-04-07 11:13:02
【问题描述】:
我在一个程序中有一个奇怪的行为,我花了很长时间试图推断出原因。这是一个毫无意义的无限循环。测试这些代码行(怀疑)我得到了相同的结果。每次我输入一个非数字值这样的符号时,程序都会运行一个无限循环打印零,我猜这就是 cout 表示输入的错误值的方式。我想知道为什么 cin 会出现这种奇怪的行为,打印所有这些零而不是在发现错误读数时停止。
#include <iostream>
using namespace std;
int main()
{
int n = 0;
while(n >= 0) {
cin >> n;
cout << n << endl;
}
return 0;
}
【问题讨论】:
-
cin处于错误状态,如果您检查了它就会知道,但您没有。
标签: c++ iostream infinite-loop cin