C++怎么解决类型输入不匹配问题?
例如:程序代码:
#include<iostream> using namespace std; int main() { int a,b; while(1) { cin>>a>>b; cout<<a<<b<<endl; if(a==b) break; } system("pause"); return 0; }
上面这段程序,如果输入字符'a',就进入死循环了。
这样的问题不是致命的么?怎么解决啊??
#include<iostream> using namespace std; int main() { int a,b; while(1) { s: cin>>a; if(cin.fail()) { cin.clear(); cin.ignore(); goto s; } cin>>b; cout<<a<<b<<endl; if(a==b) break; } system("pause"); return 0; }
#include<iostream> #include<string> using namespace std; int main() { int a,b; while(1) { while(!(cin >> a >> b)) {//还可以提示出现输入错误 cout<<"input error"<<endl; cin.clear();//使流能用。 cin.ignore(100,'\n'); } cout<<a<<b<<endl; if(a==b) break; } system("pause"); return 0; }这样真的很体面。。。