发布于 ,更新于 

读入未知数量的数据

实际上是借助读入函数的返回值实现的。

1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
int main() {
int k,sum=0;
while (scanf("%d",&k) != EOF) // EOF是读取结束标识
// 又因为 scanf 在读取到 EOF 会返回 -1,所以也可以写成 while (~scanf("%d",&k))
{
sum += 1;
}
printf("%d",sum);
return 0;
}

另外一点值得注意的是,关于使用 cin >> x 时的返回值并不是 cin 的返回值,cin 只是一个对象,而实际进行运算的是流运算符 >>

Windows 系统输入 1

1
2
1 2 3
^z

GNU/Linux 输入

1
2
1 2 3
^d

输出

1
3

  1. 本文中^z、^d 都指组合键,^d 为 Ctrl+D,^z 为 Ctrl+Z。↩︎