大多数时候,要接收的参数的个数都是已知的

但在有些时候,参数的个数是未知的,这时就需要通过判断scanf()的返回值是否为EOF来解决

scanf()会在读到文档末尾时返回EOF(End Of File),而在命令行中,则需要按下 Ctrl + Z 再按下Enter 来输入这一字符

因此在C中,我们可以使用下面的这一结构

1
while (scanf("%d", &a[++count]) != EOF);

执行完成后,输入的数字会保存在a[]中,而count的值就是个数

在C++中,借助cin还可以写得更简单

1
while (cin >> a[++count]);

由于本人习惯将数组的0号位置用于保存数组内元素的个数,所以也经常会写成这样

1
while (scanf("%d", &a[++a[0]]) != EOF);