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

时间:2015-09-25 09:41:57

标签: c++ c

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

前:

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

我想在一行中读取所有5位数字。希望我足够清楚!

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

虽然你想要它在阵列中。许多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]);
  } 

答案 2 :(得分:0)

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