cin.fail() not returning true

cin.fail() not returning true

本文关键字:returning true not fail cin      更新时间:2023-10-16

我不确定我是否正确理解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 >> number55读入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