while(cin >> val,!cin.eof())
{
//发生系统级错误
if(cin.bad())
{
throw runtime_error("IO srtream corrupted");
}
//读入错误,比如类型不匹配
if(cin.fail())
{
cerr <<"bad data,try again" <<endl;
//将操作条件重设为有效状态
cin.clear();
//忽略当前缓冲区内容
cin.ignore();
continue;
}
{
//发生系统级错误
if(cin.bad())
{
throw runtime_error("IO srtream corrupted");
}
//读入错误,比如类型不匹配
if(cin.fail())
{
cerr <<"bad data,try again" <<endl;
//将操作条件重设为有效状态
cin.clear();
//忽略当前缓冲区内容
cin.ignore();
continue;
}
}