我有一个c程序,其中我接受2个数字作为输入。 我如何验证输入的数字是否只是数字而不是字符。验证输入到C程序
void main()
{
int a,b;
printf("Enter two numbers :");
scanf("%d%d",&a,&b);
printf("Number 1 is : %d \n Number 2 is : %d",a,b);
}
[编辑]添加示例代码
我有一个c程序,其中我接受2个数字作为输入。 我如何验证输入的数字是否只是数字而不是字符。验证输入到C程序
void main()
{
int a,b;
printf("Enter two numbers :");
scanf("%d%d",&a,&b);
printf("Number 1 is : %d \n Number 2 is : %d",a,b);
}
[编辑]添加示例代码
scanf
返回,它已成功扫描的项目数。如果您询问%d%d
两个整数,并且scanf
返回2,则它成功扫描了两个数字。小于2的任何数字表示scanf
无法扫描两个数字。其他
int main()
{
int a,b;
int result;
printf("Enter two numbers :");
result = scanf("%d%d",&a,&b);
if (result == 2)
{
printf("Number 1 is : %d \n Number 2 is : %d",a,b);
}
else if (result == 1)
{
// scanf only managed to scan something into "a", but not "b"
printf("Number 1 is : %d \n Number 2 is invalid.\n", a);
}
else if (result == 0)
{
// scanf could not scan any number at all, both "a" and "b" are invalid.
printf("scanf was not able to scan the input for numbers.");
}
}
一个值scanf
可能会返回为EOF
。如果从流中读取错误,它可能会返回。
另请注意,main
返回int
,但您已将它与void
返回声明。
除了其他有趣的建议(尤其是一个与scanf
),你可能也想使用isdigit功能:
的ISDIGIT()函数将测试 C是否是类 位的字符在程序的当前语言环境中
请注意,该函数仅检查一个字符,而不是整个字符串。
诉诸已经完成的功能总是很好的做法;即使是在最简单的任务中,也可能不会意识到错综复杂的情况,这会让您成为一名优秀的程序员。
当然,在适当的时候你可能会想看看该函数是如何工作的,以便很好地理解底层逻辑。
该代码将只要它需要。 – 2010-08-11 06:47:45
已编辑的问题,不需要有限制。 – mielacademy 2010-08-11 06:51:09
取决于您计划接受输入的方式 – 2010-08-11 06:54:47