输入流的困惑
程序如下:#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 " ;
cin.clear(istream::failbit);
continue ;
}
}
return 0 ;
}
输入如果是int型数据程序当然没有问题了,但如果输入其他的,比如char型,程序就会无限循环了,不断输出bad data,try again ,输入流并没有等待我输入数据。各位大虾,请问是怎么回事啊?是输入缓冲区的问题嘛?