整型变量输入为字符时死循环(C++)
#include <iostream.h>
int main()
{
int c;
while(1)
{
cin >> c;
if (cin.good())
{
return c;
break;
}
if (cin.fail())
{
cout <<"请重新输入:" ;
}
cin.clear(); //修复输入流
cin.ignore(); //取走刚才流中的字符
}
}
简单方法:
#include <iostream.h>
int main()
{
int c;
while(cin >> c,!cin.good())
{
cout <<"请重新输入:" ;
cin.clear(); //修复输入流
cin.ignore(); //取走刚才流中的字符
}
cout<<c<<endl;
}