我使用scanf()
函数并意识到我只能使用它输入一个数字到一个数组中。有没有办法在一行中读取整数?
前:
for(i=0;i<5;i++)
{
scanf("%d",&arr[i]);
}
我想在一行中读取所有5位数字。希望我足够清楚!
答案 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]);