istream &func(istream &in)
{
string data;
while (in >> data, !in.eof()) {
if (in.bad())
throw runtime_error("IO stream corrupted");
if (in.fail()) {
cerr << "bad data, try again" << endl;
in.clear();
in.ignore(200);
continue;
}
cout << data << endl;;
}
//in.clear(istream::eofbit | istream::failbit);
in.clear();
return in;
}
为什么in.clear(istream::eofbit | istream::failbit);
不能重置cin?
但in.clear
可以做到。
PS:我在 main() 中使用了这个函数,并cin
用作它的参数。