我有一个C ++程序,可以根据给定的数组大小执行计算。它在小型阵列上工作正常,但在大型阵列上,scanf和cin卡住了,如果我输入任何非数字,它就会跳出评估错误计算的循环。
这里是重现问题的示例代码:-
#include <iostream>
using namespace std;
int main() {
int N;
cin >> N;
int *X = new int[N];
for(int i=0;i<N;i++){
cout << "getting " << i << "th input \n";
cin >> X[i]; // tried scanf too but i
}
cout << "Done\n";
return 0;
}
当我像这样大笔输入时:-https://pastebin.com/PWmm9J7i
打印到]
getting 693th input
我多次运行程序,仍然得到相同的结果。我也用clang和gcc编译了它,但是它仍然停留在第693个输入处。
我正在使用Manjaro OS
我有一个C ++程序,可以根据给定的数组大小执行计算。它在小型阵列上工作正常,但在大型阵列上,scanf和cin卡住了,如果我输入任何非数字,它......>
cin
的状态,如果它处于错误状态,请清除错误并使用错误的字符: