在C ++中,您可以手动设置流的failbit吗?怎么样?

时间:2009-10-28 22:40:24

标签: c++ validation inputstream

我正在重载输入流运算符以与Time类一起使用,并且如果输入与我预期的时间格式(hh:mm)不匹配,则希望手动设置输入流的failbit。可以这样做吗?怎么样?

谢谢!

1 个答案:

答案 0 :(得分:26)

是的,您可以使用ios::setstate进行设置,如下所示:

#include <iostream>
#include <ios>

int main()
   {
   std::cout << "Hi\n";

   std::cout.setstate(std::ios::failbit);

   std::cout << "Fail!\n";
   }

由于cout处于失败状态,因此不会生成第二个输出。

(一个例外对我来说似乎更清晰,但是YMMV)