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