none
流状态的查询和控制 RRS feed

  • 问题

  • 在C++Pimer上看了一段关于流状态的查询和控制的小程序,结果在调试时出现了点小问题,请教各位高手:

    #include<iostream>
    #include<string>
    using namespace std;
    void 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::failbit);
       continue;
      }  
     }
     system("pause");
    }

    在调试时如果输入字母就一直在第二个if循环里跑个不停,一直输出Bad data,try again!,这是因为什么?

    2011年1月13日 3:41

答案

全部回复