cin stream error
cin stream error
int main()
{
int i;
if (cin >> i)
{
//ok
}
else
{
//error
cin.setstate(std::ios_base::goodbit);
}
}
为什么我不能通过 setstate() 设置goodbit
来清除failbit
而不是 cin.clear()?
因为setstate
将当前状态与你通过按位OR
传递它的任何状态结合起来,所以失败位不会被清除(设置为零)。
所以假设:
Assume a very simple state mechanism:
00
^^
||
|
| the fail bit
the ok bit
当你的状态01
时做setstate(okbit)
只会给你11
(看,妈妈,失败位仍然设置),所以实际上你所做的只是搞砸内部流状态。你真的应该完全避免使用setstate
。
点击查看参考。
相关文章:
- "error: no matching function for call to"构造函数错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 使用 LuaBridge 将 LuaJIT 绑定到C++会导致"PANIC: unprotected error"
- OpenMP卸载说'fatal error: could not find accel/nvptx-none/mkoffload'
- C++错误:"error: int aaa::bbb is protected within this context"
- 尝试链接我的着色器时,我收到错误代码"error c5145 must write to gl_position"
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- 为什么stream::忽略未按预期工作
- 使用 cmake 的 LLVM 构建在 tsan_libdispatch_mac.cc 期间失败; "Error: conflicting types for ..."
- C++ "error: invalid use of void expression"
- struct.error:解压缩 C++ 结构时,解包需要 288 字节的缓冲区
- 如何修复"error: ‘_1’ was not declared in this scope"?
- 从不同目录执行时"symbol lookup error:",否则从构建目录执行时按预期工作
- 对象声明中的模板"error: expected expression"
- 在C++中使用 Catch 测试框架编译错误"error: expected ';' at end of declaration list"
- OpenCV RTP-Stream with FFMPEG
- stream .pdf error
- 提升序列化在特定文件大小后抛出"input stream error"
- 提升序列化/反序列化存档"stream error"异常
- cin stream error