输入两个数字的值

时间:2019-06-11 06:45:46

标签: c

实际上,我正在学习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),我希望它抛出错误作为无效输入。

我该怎么办?

1 个答案:

答案 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