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을 재설정 할 수 없습니까?iostream clear()
그러나 in.clear
으로 만들 수 있습니다.
추신 :이 함수는 main()에서 사용하고 cin
을 매개 변수로 사용합니다. 맑은
'istream :: badbit'이 (가) 실패하지 않았는지 확인하십시오. 2가 아닌 3 가지 가능한 값이 있습니다. –
* ctrl-d *를 사용하여 istream을 종료하면'eofbit'과'failbit'가 설정되어야합니다! – iverson
"should"로 무엇을 의미합니까? 왜 'badbit'도 설정해서는 안됩니까? –