CIN循环不起作用

时间:2013-02-16 21:45:37

标签: c++ while-loop cin

编辑:

Ctrl-D

终止linux中的缓冲区。

Ctrl-Z
在Windows中

我应该添加我使用Linux。我用g ++。

现在,我正在通过C ++ Primer Edition 4学习C ++。

在一个例子中,给出了这段代码:

#include <iostream>
    int main()
    {
        int sum = 0, value;
        // read till end-of-file, calculating a running total of all values read
        while (std::cin >> value)
            sum += value; // equivalent to sum = sum + value
        std::cout << "Sum is: " << sum << std::endl;
        return 0;
     }

现在,我输入“3 4 5 6”,然后按回车键,我得到的只是换行符,如:

1 2 3 4 5
Blank line

根本没有输出。

我拒绝使用我还没有学过的概念,到目前为止我不知道cin.METHOD函数,所以问题是什么?

1 个答案:

答案 0 :(得分:3)

输入和输出被缓冲。在控制台中按 Ctrl + Z 结束输入以终止循环。

或从文件中读取:

echo '1 2 3 4 5' > foo.txt
./your-program < foo.txt

或通过管道从标准输入读取:

echo '1 2 3 4 5' | ./your-program

或:

./your-program <<< '1 2 3 4 5'

(取决于您正在使用的终端仿真器。)