这种情况下,我们不知道要对多少个数求和,而是要一直读到程序输入结束。
当我们使用istream对象作为条件,结果是测试流的状态。如果流是有效的(也就是说,如果读入下一个输入是可能
的)那么测试成功。遇到文件结束符或遇到无效输入时,如果读取了一个不是整数的值,则istream对象是无效的。
在遇到文件结束符之前,测试会成功并且执行while循环体。
从键盘输入文件结束符:
Windows系统下通过键入control+z,来输入文件结束符;
Unix系统下,通常用control+d.
注意:我们输入完成数字之后,应该先换行输入文件结束符,然后再按回车键,才会显示出结果(我也不知道为什
么)
代码如下:
#include <iostream>
int main()
{
int sum = 0, value;
while (std::cin >> value)
sum += value;
std::cout << "Sum is: " << sum << std::endl;
getchar();
return 0;
}