gpt4 book ai didi

c++ - 是否可以在 C++11 中手动设置 istream 失败位

转载 作者:可可西里 更新时间:2023-11-01 17:15:46 26 4
gpt4 key购买 nike

我做了这门课:

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 做的那样。但是,如果我现在这样做,只要出现错误,就会出现无限循环。 -_- 是否可以设置失败位,或者我是否必须以不同的方式处理这个问题?

最佳答案

您可以使用 basic_ios::setstate 设置输入流的 failbit功能:

in.setstate(std::ios_base::failbit);

关于c++ - 是否可以在 C++11 中手动设置 istream 失败位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41355007/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com