故障位是否会影响 cin 上的调用忽略
Does the failbit effect the call ignore on cin?
设置故障位后:当我第一次调用cin.clear()然后调用cin.ignore()时,程序是正确的。当我第一次调用cin.ignore()然后调用cin.clear()时,忽略似乎不起作用,为什么?
cin.clear()
清除故障位,但cin.ignore()
不会。
这意味着,如果流处于无效状态,则调用clear()
后跟 ignore()
会将状态重置为 GOOD,然后忽略下一个字符。
另一方面,调用ignore()
后跟clear()
意味着ignore()
将失败,然后clear()
将继续重置流状态。因此,在这种情况下,下一个字符不会被忽略。
cin.ignore()
仅在true
时从流中使用数据cin.good()
。如果设置了failbit
,则将cin.good()
false
。
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- 为什么使用 "this" 指针调用派生成员函数?
- 函数调用中参数的顺序重要吗
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 在c++类上调用void函数
- 为什么 std::unique 不调用 std::sort?
- 调用专用模板时出错"no matching function for call to [...]"
- 选择要调用的构造函数
- C++为什么尽管我调用了void函数,它却不起作用
- CIN.IGNORE删除第一个字符的第二次函数被调用
- 故障位是否会影响 cin 上的调用忽略
- 为什么我不能将 cin/cout 放在一个函数中并从 main() 调用该函数
- CIN 将字符串的开头分配给 int,仅在第二次调用中失败
- 在C++中,有没有一种简单的方法可以通过iostream::cin获取带有参数的命令调用
- 使用带有参数cin.get()或.geline()的函数调用
- std::cin循环,即使我调用ignore()和clear()
- 对 std::cin >> 的调用不会阻止