Jar*_*red 22 c++ validation inputstream
我正在重载输入流运算符以与Time类一起使用,并且如果输入与我预期的时间格式(hh:mm)不匹配,则希望手动设置输入流的failbit.可以这样做吗?怎么样?
谢谢!
Jac*_*oyd 28
是的,您可以设置它ios::setstate,如下所示:
#include <iostream>
#include <ios>
int main()
{
std::cout << "Hi\n";
std::cout.setstate(std::ios::failbit);
std::cout << "Fail!\n";
}
Run Code Online (Sandbox Code Playgroud)
由于cout处于失败状态,因此不会生成第二个输出.
(一个例外对我来说似乎更清晰,但是YMMV)