cin.fail() not returning true
cin.fail() not returning true
我不确定我是否正确理解cin.fail((。我试图让它在用户不输入整数时返回 true。
#include <iostream>
using namespace std;
int main() {
int number;
cout << "Please enter a positive integer: ";
cin >> number;
cout << cin.fail();
return 0;
}
每当我输入一个非整数(如 55.687(时,它都会为 cin.fail(( 返回 0(false(。我不知道为什么。任何帮助将不胜感激。
流尚未失败。
当>>
读入整数时,一旦找到不能在整数中的字符,它就会停止。在"55.687"
的情况下,这是'.'
角色。因此cin >> number
读55
读入number
,".687"
保留在流中以供将来读取。
给定相同的输入
int main() {
int number;
cout << "Please enter a positive integer: ";
cin >> number;
cin >> number;
cout << cin.fail();
return 0;
}
第二个cin >> number
将失败,因为'.'
无法解析为int
。示例:https://ideone.com/iB3aNk
相关文章:
- 无论条件是否为true,if总是在c++中执行
- flutter:即使shouldRepaint()返回true,自定义画家也不会重新绘制
- 如果条件为TRUE(最佳方式?),则在do while循环中后置增量
- Arduino-C++ bool 不会从 false 变为 true
- 如何使布尔变量仅在设置为 true 时才为真?
- C++ 如果在 if 为 true 之后运行,为什么还会这样做
- ZLib GZIP Returning Z_BUF_ERROR(-5)
- C++:寻找"returning address of local variable..."的更正
- 为什么组合的上限和下限比较的计算结果总是为 true?
- 对于完成布尔值设置为 true 后未停止的循环
- 为什么'typeid(x) == typeid(y)'的计算结果为 true,其中 'x' 和 'y' 分别是 T 和 T& 类型的 id-表达式?
- OLE DB 大容量复制操作始终将 true 加载到位列中
- cin.fail() not returning true
- Fmod 函数清楚地输出一个预期的双精度值,但 if(fmod == 预期的双精度值)的计算结果不是 true
- 如何使用boost定义布尔类,可能的值应该是TRUE或FALSE?
- "Warning : No return statement in function returning non-void"是什么意思?
- 我在OpenCV中有错误的"approxPolyDP(ROI_Vertices, ROI_Poly, 1.0, true)"
- std::localtime returning null
- 为什么我收到以下错误:"returning reference to temporary [-Werror=return-local-addr]"
- 如果语句表达式调用函数,则需要测试是否为 true