c - 使用 scanf 在 C 中读取多个值

标签 c

还有另一个线程解释了如何使用 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/

相关文章:

c - 在二叉搜索树中通过引用重定向指针

c - #define values 的最大值/最小值

c - 通过管道读取字符串时使用 fgets 有困难

c - 常量表达式和不可修改的左值之间有什么区别?

谁能给我解释一下这段代码吗?我是 C 新手

c - 我编写这段代码是为了检查一个数字是质数、阿姆斯特朗数还是完美数,由于某种原因,当我使用大数时它不会打印

c - realloc 后使用原始指针?

c - 调试低级 gcc 中间代码表示

c - 关于 calloc 的奇怪事情

C - 终止的好方法