小编Stu*_*ers的帖子

为什么 scanf 可以使用 for 循环读取一行中的多个输入?

我想将给定的 n 个值(n 已知)存储在一个数组中,但我不知道该怎么做,所以我查看并找到了这篇文章:C, read multiple numbers from single input line (scanf?),还有这个回答:

int main()
{
    int i, size, *v;
    scanf("%d", &size);
    v = malloc(size * sizeof(int));
    for (i=0; i<size; i++)
        scanf("%d", &v[i]);
    printf("%d %d %d", v[0], v[1], v[2]);
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么 scanf 可以这样做,函数不应该在循环的每次迭代中要求另一个输入吗?只要它们以空格分隔,它如何读取一个int,然后读取另一个等等?scanf 怎么会这样呢?因为好像不应该。

PS:为了简单起见,我只用 3 个值编写了最终的打印语句,在“我的情况”中,大小为 3。

先感谢您!

c

-1
推荐指数
2
解决办法
1506
查看次数

标签 统计

c ×1