25

我正在重载输入流运算符以与 Time 类一起使用,并且如果输入与我的预期时间格式 (hh:mm) 不匹配,我想手动设置输入流的故障位。这可以做到吗?如何?

谢谢!

4

1 回答 1

31

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

#include <iostream>
#include <ios>

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

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

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

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

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

于 2009-10-28T22:43:38.973 回答