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;
}

程序可以这样修改,就不会陷入死循环。

posted on 2013-01-14 09:46  wjungang  阅读(113)  评论(0)    收藏  举报