1

编辑:

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函数,所以有什么问题?

4

1 回答 1

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'

(取决于您使用的终端模拟器。)

于 2013-02-16T21:47:50.397 回答