【发布时间】:2016-12-28 03:33:37
【问题描述】:
我已经做了这门课:
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)