using namespace std;
int main()
{
int ival;
while (! (cin >>ival).eof()){ // 输入 'a' 为什么无限循环???
if (cin.fail()) {
cerr << "bad data, try again"<<endl;
//cin.clear();
continue;
}
}
}
当输入流读取失败时,它会把字符放回原处,等待下次读取
所以要加上clear