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