第1个回答 推荐于2018-03-20
使用类似下面的判断方法就可以了。
流如果不能成功将数据转换为需要的类型,流就会处于错误状态。
double f;
cin >> f;
if (!cin)
{
cout << "Incorrect number!";
}
如果你想要流从错误状态中恢复过来,
使用 cin.clear(); 注意,此时流中的内容还在。如果你想清除流中的内容,使用cin.sync();
比如你想要int a, b; cin >> a >> b; 如果用户输入了字母,那么两次cin都会失败,如果你想要在cin >> a后继续让用户输入b,你需要这么做:
cin >> a;
if (!cin)
{
cin.clear();
cin.sync();
}
cin >> b;本回答被提问者和网友采纳