我做了這個類:是否可以手動設置istream的失敗位在C++ 11
class object {
// data...
public:
friend std::istream& operator>>(std::istream& in, object& o) {
char c, d;
in >> c >> d;
if (c == d) {
/*set the fail bit some how*/
in.putback(d);
in.putback(c);
} else
o.set_data(c, d);
return in;
}
};
我一直在尋找的文件(不是很好),但未能找到一種合適的方式設置失敗位。我關心的原因是我希望能像while(std::cin>>obj)/*do stuff*/;
一樣可以用int來做。但是,如果我現在這樣做,每當出現錯誤時都會出現無限循環。 -_-
設置失敗位可能或者我將不得不以另一種方式處理這個問題?
'in.setstate(std :: ios_base :: failbit)'' – 0x499602D2