c++ - CIN 回路不工作

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

最佳答案

输入和输出被缓冲。通过在控制台中按 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'

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

关于c++ - CIN 回路不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14915465/

相关文章:

c++ - 如何在编译时检查类是否具有继承函数?

c++ - 将 void 函数转换为 char* C++

c++ - opencv c++ 中的鼠标事件

Java while 循环不工作

java - 如果没有主体,Java 中的 while 循环是否不检查它们的条件?

c++ - 如何用空格读取 cin 直到换行符?

c++ - 编译c++代码时出错 逗号运算符的右操作数不起作用

c++ - C++ 中的关键字 "using"可以与 "namespace"以外的内容一起使用吗?

c - 简单的 C 程序,printf 不打印

c++ - 我的程序正在通过 cin.get 从之前的输入获取\n