今天被人问了关于给int型变量输入字符的异常处理方法,当时想也没想直接说加个判断
int num;
cin>>num;
while(!cin)
{
cout<<"输入错误";
cin>>num;
}
但他试完了说发现死循环了,我试了一下,果然这样,挺纠结的问题哈
一番周折后,终于再网上找到了解决方法,一起分享哈
#include <iostream.h>
#include <limits>
#include <sstream>
using namespace std;
void main()
{
int num;
while( !(cin>>num) || cin.peek()!='\n' )
{
cin.clear();
cin.ignore( numeric_limits<streamsize>::max(), '\n' );
cout << "输入数据错误,请重新输入:" << endl;
}
}