实际上,我正在学习C语言,并且已经编写了一个程序
输入2个数字的值,如下所示。
#include<stdio.h>
int main()
{
int a, b, c;
printf("Enter two numbers to add\n");
scanf("%d%d", &a, &b);
printf("Sum of the numbers = %d\n", c);
return 0;
}
但是,如果我输入一个字母,我会得到一些1522222数字。代替 如果我键入字母(即a,b,c),我希望它抛出错误作为无效输入。
我该怎么办?
答案 0 :(得分:6)
您可以检查scanf
的返回值。如果成功,它将返回2
,因为您正在读取两个值。如果还有其他问题,则说明输入不正确。试试这个:
if (scanf("%d%d", &a, &b) != 2)
printf("Invalid input type!\n");
else
printf("Sum of the numbers = %d\n", a+b);
换句话说,您不会在任何地方初始化c
,因此打印它是未定义的行为。您甚至不需要c
,只需打印a+b
。