[英]isdigit() unexpected behaviour?
为什么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
。
输入:
高度:富
因为您的期望不正确。 在字符上调用isdigit()以查看其是否包含十进制数字'0'-'9'。 您正在一个已经是二进制值的int上调用它。
您对函数isdigit
理解不正确。 该函数的输入为char。 因此您可以更改为:
char h;
printf("Height: ");
scanf("%c", &h);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.