编辑:
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/