c++ primer 第8章 流状态 陷入死循环问题
#include <iostream>
using namespace std;
int main()
{
int ival;
while (cin >> ival, !cin.eof())
{
if(cin.bad())
throw runtime_error("IO stream corrupted");
if (cin.fail())
{
cerr << "bad data, try again" << endl;
cin.clear(istream::goodbit);//cin.clear()
cin.ignore();
continue;
}
cout << "ival = " << ival << endl;
}
return 0;
}
程序可以这样修改,就不会陷入死循环。
浙公网安备 33010602011771号