注意:这篇文章上次更新于1380天前,文章内容可能已经过时。
问题:从键盘输入不定量的数据,输出其和。
代码
#include <iostream>
int main()
{
int value = 0,sum = 0;
while(std::cin >> value)
{
sum += value;
}
std::cout << "这些数的和是:" << sum << std::endl;
return 0;
}
解释
表达式std::cin >> value
是从标准输入中读取下一个数,保存在 value 中。输入运算符>>
返回其左侧运算对象,在本例中是 std::cin
,因此,次循环条件实际上就是检测std::cin
。
当我们使用一个 istream
对象作为条件时,其效果就是检测流的状态。如果流是有效的,即流未遇到错误,那么检测成功。当遇到文件结束符,或者遇到一个无效的输入时,istream
对象的状态就会变为无效。处于无效状态的 istream
对象会使条件为假。
因此,我们的 while
循环会一直执行直到遇到文件结束符(或输入错误)。
那么,什么是文件结束符,如何从键盘输入文件结束符?
对于不同的操作系统而言,有着不同的约定。在 Windows 系统中,输入文件结束符的方法是 Ctrl + Z,然后按 Enter 键。在 Unix 系统中,包括 Mac OS X 系统中,文件结束符的输入是用 Ctrl + D。