首页 > 解决方案 > 输入两个数字的值

问题描述

实际上,我正在学习 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,我希望它会抛出一个错误作为无效输入,而不是这个。

我怎么能那样做?

标签: cinputscanf

解决方案


您可以检查 的返回值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


推荐阅读