我做了这个类:是否可以手动设置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