使用scanf()将多个输入放在一行中

Multiple inputs in a single line using scanf()?

本文关键字:一行 scanf 使用 输入      更新时间:2023-10-16

我使用scanf()函数并意识到我只能使用它在数组中输入一个数字。有没有办法在一行中读出整个数字?

,

for(i=0;i<5;i++)
     {
     scanf("%d",&arr[i]);
     }

我想在一行中读取所有的5个数字。希望我说得够清楚了!

如果您指的是单个源代码行,您可以使用:

scanf ("%d %d %d %d %d", &arr[0], &arr[1], &arr[2], &arr[3], &arr[4]);

或:

for (i = 0; i < 5; i++) scanf ("%d", &(arr[i]));

如果您指的是单个输入行,那么这两种方式都可以。%d将跳过流中的前导空格,因此您是否输入:

没有什么区别。
1 2 3 4 5

或:

1
2
3 4
5

我自己更喜欢循环版本,因为它可以任意大,而不会使源代码行太长。

虽然您希望它在数组中。许多5数字可以存储在单个int变量中(取决于您的系统上int的大小)。

在单个scanf中,您可以这样做-

scanf("%d %d %d %d %d",&a[0],&a[1],&a[2],&a[3],&a[4]);

——

 for(i=0;i<5;i++)
 {
    scanf("%d",arr[i]);  //you missed &  should be scanf("%d",&arr[i]);
  } 

您可以使用scanf ("%d %d %d %d %d", &arr[0], &arr[1], &arr[2], &arr[3], &arr[4]);