字符和十进制数都有不同的数据类型在c ++中定义。为什么我得到以下输出?
#include<iostream>
using namespace std;
int main()
{
int a;
cin >> a;
cout << (cin.fail()); //Output is 1 when input is a character
return 0; //Output is 0 when input is a decimal number
}
答案 0 :(得分:0)
字符和数字确实具有不同的数据类型,但是您的代码在上面明确地寻找 int 因为语句cin >> a;
有一个int
作为rhs operator>>
的。{如果您尝试输入非数字字符串,则会失败。
答案 1 :(得分:0)
cin.fail()
将返回false
,否则将返回true
。当您将true
和false
传递给cout
时,它会分别打印1
和0
。
如果您想读取一个数字并且用户向您发送一个字符并且您已阅读它,则此操作被视为失败。如果您正在阅读某个角色并且用户通过了字符,cin.fail()
将返回true
,但您正在读取一个数字,因此它返回false
。