重读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

posted on 2016-07-18 16:20  逸蒙  阅读(3287)  评论(0编辑  收藏  举报