求高手解答一段小程序的输出结果为什么会是这样的!
#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::failbit);
continue;
}
}
return 0;
}
#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(),清除所有状态位
while (cin.get() != '\n')
continue;// 读取并丢弃上次输入留在缓冲流中的字符
// continue;// 此语句可有可无
}
}
return 0;
}
while (cin.get() != '\n')
continue;