我是C语言的新手。这是我用来获取a和b的输入并打印它们的代码。但我没有得到我通过终端输入的值,你能解释一下为什么我得到了a和b的不同值吗?
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int main()
{
int a,b;
scanf("%d, %d", &a, &b);
printf("%d, %d", a, b);
return 0;
}
我输入了59作为输入,但得到了5和16作为输出。
您需要检查scanf()
的值,否则您尝试使用的部分或所有值都未定义。在您的情况下,您提供的输入与scanf()
格式字符串不匹配。我更改了格式字符串以匹配您提供的输入,删除了未使用的标题,并在printf()
语句中添加了一行换行符:
#include <stdio.h>
int main(void) {
int a, b;
if(scanf("%d%d", &a, &b) != 2) {
printf("scanf failedn");
return 1;
}
printf("%d, %dn", a, b);
}
您不必使用逗号(,(来分隔scanf()
函数中的两个输入。此函数会根据格式说明符的出现次数自动分隔输入,即您的情况下的%d
。但是,您必须使用逗号分隔变量地址。就像scanf("%d %d", &a, &b)
一样使用它。