为什么 isdigit
没有按预期工作。我正在尝试检查输入是否为数字。如果输入是数字,则打印 True
否则打印 False
。
#include<stdio.h>
#include<ctype.h>
int main()
{
int h;
printf("Height: ");
scanf("%d", &h);
if (isdigit(h))
printf("True");
else
printf("False");
}
但它总是返回False
。
输入:
高度:Foo
最佳答案
因为您的期望不正确。对字符调用 isdigit() 以查看它是否包含十进制数字“0”-“9”。您在已经是二进制值的 int 上调用它。
关于c++ - isdigit() 意外行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21655826/