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,我希望它会抛出一个错误作为无效输入,而不是这个。
我怎么能那样做?
解决方案
您可以检查 的返回值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
。
推荐阅读
- python - 如何从这些数据创建点图(不是散点图)?
- javascript - Javascript 在我的 htm 引导程序中不起作用
- task - 在不阻塞正在进行的代码的情况下在 TCL 中获得某种时间表的方法
- javascript - FasiAPI comm : 在 js 中获取 python 回调并从 FastAPI 访问 javascript
- arrays - 计算二维数组中不同元素的出现次数
- python - 如何使用 Cloud Pubsub 发送电子邮件通知
- javascript - 如何获取在javascript中具有共同价值的对象键?
- android - ReactNative:如何在 pubnub 通知 android 中自定义声音?
- rust - Rust:如何使用 Arc 在新生成的线程中使用特征中定义的方法?
- python-3.x - 尝试接收条带挂钩时在 Django 上获取 MultiValueDictKeyError