【发布时间】:2017-05-08 10:01:38
【问题描述】:
我想将两个整数作为输入并输出它们的和。当给定两个整数作为输入时,该代码可以正常工作。但是,当我将一个非整数值作为第一个值的输入(比如 2.3)并按 Enter 键时,程序不会等待第二个输入并产生一个奇怪的输出。
你能告诉我为什么会这样吗?
#include <stdio.h>
int main()
{
int a, b;
scanf(" %d%d", &a, &b);
int c = a +b;
printf("%d\n", c);
return 0;
}
【问题讨论】:
-
scanf()返回什么值? -
提示:The value has a meaning。并且根据该值,您可以知道您的未初始化变量是否仍然具有不确定的值。
-
scanf() 返回成功读取的值的数量。在您的情况下,当输入为 2.3 时,它返回 1,因为只有 2 被正确读取。但是,当您将两个数字都输入为整数时,它会返回 2,因为它会正确读取两个整数。