以上摘自http://zhidao.baidu.com/question/58822190#include <iostream> using namespace std; int main() { int a; while(!(cin>>a)) { cout<<"Error!Input again!"<<endl; } return 0; }
想法是输入数字结束,输入其他进入循环, 当输入a时发现,一直出现Error,原因是当接收字符时,cin处于错误状态,不会再接收任何数据如:#include <iostream> using namespace std; int main() { int a; char c('g'); cin>>a; cin>>c; cout<<a<<endl; cout<<c; return 0; } 输入字符直接输出a与c,不再接收c;
解决办法是用getline接收错误字符,