如何使用scanf()将n个元素输入到数组中?

3
有没有一种方法可以使用scanf()n个输入输入到数组中,其中n不是固定的?
scanf("%d %d %d %d ... n number of inputs", &array);

问题在于用户输入数组的大小,输入格式是使用 scanf 一行输入,因此形式为:

12 24 36 34 65 24 54 ... upto n inputs

这样,第一个%d将被存储在array[0],第二个将被存储在array[1],第三个将被存储在array[2],一直到array[n-1]

虽然可以很容易地使用for循环实现,但我想用一行代码实现。


5
既然你已经知道一个简单的方法,为什么还要试图在一行内完成它? - Chris Turner
2
我想用一行代码来完成它。除了编写自己的函数,你无法用一行代码完成它。但如果编写一个函数,那么它也不能算是一行代码了。 - Sergey Kalinichenko
1
阅读此链接 https://dev59.com/TmbWa4cB1Zd3GeqPYqGQ 并尝试使用 vfscanf() ... :-) - alk
n的范围是什么? - chux - Reinstate Monica
1个回答

1

不是单行代码,但仍然很短

while(i < n && scanf("%d", &array[i]) == 1)
    i++;

你应该始终检查scanf函数的返回值。
不要忘记用0初始化i


不要在 i++ 前面断行 - 这是一个一行代码。 - DYZ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接