还有另一个线程解释了如何使用 scanf() 获取多个值。但是,我尝试了第一个变量的正确值和其余两个变量的垃圾值。当我使用单独的 scanf 语句时,它工作得很好。 我使用的是 RH Linux 5。 内核版本 - 2.6.18-238。 4.1.2
例如如果我这样做scanf("%d %d %d",&n,&p1,&p2)
,那么 n 读得很好。但即使我读取了这些值,p1 也被分配了 32767,p2 也被分配了另一个数字。但根据 SO 上的线程,它应该可以工作。那么我做错了什么?
最佳答案
你没有说这三个变量是什么类型。它们必须是int
。
以下代码在我的计算机上按预期工作:
#include <stdio.h>
int main()
{
int n, p1, p2;
scanf("%d %d %d", &n, &p1, &p2);
printf("%d %d %d\n", n, p1, p2);
return 0;
}
这是输出:
$ gcc x.c
$ ./a.out
10 3 5
10 3 5
关于c - 使用 scanf 在 C 中读取多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6662283/