读取数量不定的输入数据,需要用到条件循环语句while来检查数据流的状态。具体代码如下:
#include<iostream>
int main()
{
int sum = 0, value = 0; //保存输入的数据
std::cout<<"Please input numbers and end with finish!"
while (std::cin >> value) //检查输入流的状态,若流有效则sum
sum += value;
std::cout << "sum is " << sum << std::endl; //输出结果
system("pause"); //暂停窗口以观察
return 0;
}
数据读取操作是在while的循环条件中完成的,
使用value保存输入的数据,此循环条件实质是检测std::cin,其效果是检测流的状态,如果流是有效的,即未遇到错误(例如浮点数赋值给int型变量),那么检测成功,执行block内的内容。
当遇到文件结束符或遇到一个无效输入时,istream对象的状态会变为无效,跳出循环。