重读C++ Primer 中以下代码,发现不知道怎么结束输入,一旦输入Ctrl + c,程序结束。
#include <iostream>
int main()
{
int sum = 0, value;
while (std::cin >> value)
{
sum += value;
} // while(std::cin>>value)
std::cout << "Sum is " << sum << std::endl;
return 0;
}
C++ Primer中有详细描述:
当我们使用istream对象作为条件,结果是测试流的状态。如果流是有效的(也就是说,如果读入下一个输入是可能的)那么测试成功。遇到文件结束符(end-of-file)或遇到无效输入时,如读取了一个不是整数的值(针对上述代码变量value所说),则istream对象是无效的。处于无效状态的istream对象将导致条件失败。
操作系统使用不同的值作为文件结束符。
windows系统下,Ctrl + z
Unix系统中,包括Mac OS-X,通常用 Ctrl + d