我正在做一些基本的编码练习,但是我遇到了一个问题。 我需要从标准输入读取一个随机数的整数并将它们存储在一个向量中。 然后读取第二个随机数的整数并将它们存储在另一个整数中。
这是我的代码:
vector<int> i_vect1, i_vect2;
int itemp;
cout<<"Input numbers into vector1:"<<endl;
while(cin>>itemp){
i_vect1.push_back(itemp);
}
cout<<"Input numbers into vector2:"<<endl;
while(cin>>itemp){
i_vect2.push_back(itemp);
}
当我运行代码时,我输入了1
2
3
4
5
等数字,然后按ctrl+z
结束输入vector1
。但它无法读取vector2
的整数,程序结束了。
我该怎么办?我的代码出了什么问题?
答案 0 :(得分:5)
按ctrl-z后,将cin
置于错误状态(eof并失败)。只要它处于此状态,所有输入操作都将失败。您需要清除错误状态。
cin.clear();
然后你应该能够再次阅读它。