使用scanf读取C中的多个值

使用scanf读取C中的多个值,c,C,还有一个线程解释了使用scanf()获取多个值的方法。我试过了,但是,我得到了第一个变量的正确值和剩余两个变量的垃圾值。当我使用单独的scanf语句时,它工作得很好。 我正在使用rhlinux5。 内核版本-2.6.18-238。4.1.2 e、 g.如果我做了scanf(“%d%d%d”,&n,&p1,&p2),那么n的读取是正确的。但是p1被分配了32767,p2被分配了另一个数字,即使在我读取了这些值之后。但是根据上面的线索,它应该是有效的。那么我做错了什么呢?你没有说这三个变量是什么类型

还有一个线程解释了使用scanf()获取多个值的方法。我试过了,但是,我得到了第一个变量的正确值和剩余两个变量的垃圾值。当我使用单独的scanf语句时,它工作得很好。 我正在使用rhlinux5。 内核版本-2.6.18-238。4.1.2


e、 g.如果我做了
scanf(“%d%d%d”,&n,&p1,&p2)
,那么n的读取是正确的。但是p1被分配了32767,p2被分配了另一个数字,即使在我读取了这些值之后。但是根据上面的线索,它应该是有效的。那么我做错了什么呢?

你没有说这三个变量是什么类型的。它们必须是
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;
}

你是如何介绍这些数字的?如果你用回信把它们分开,它们就不会被很好地阅读。您必须提供所有三个以空格分隔的项目。
scanf
返回成功读取的项目数。如果在您的示例中没有返回3,则表示尝试读取值时出错。请发布一段代码,说明您面临的问题。
$ gcc x.c
$ ./a.out 
10 3 5
10 3 5