为什么如果我从键盘输入EOF克里昂不要在运行窗口打印程序的输出?



我刚刚开始使用Clion作为我的IDE,我正在努力解决从键盘输入的EOF。 如果我执行这个简单的 c++ 代码

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

在Clion的运行窗口中,我从键盘输入后1 2 cmd+d我明白了

1 2 ^D
Process finished with exit code 0

在MacOS中,EOF(带键盘(是Cmd+D。
在CLion中,可在以下位置设置:

文件 -> 首选项 ->

键盘映射 ->搜索 EOF 并设置 Cmd+D。


但是,我建议您在代码中使用终止字符,例如零,在这种情况下不会更改结果。

CLion 中的执行示例

这是 Windows 上 CLion 的一些已知问题。在注册表中禁用 run.processes.with.pty(通过查找操作打开(通常会有所帮助。

在某些环境中,EOF 仿真是使用 Ctrl+Z 组合而不是 Ctrl+D 执行的

为避免此类问题 - 使用要输入"1 2"的内容创建文件

并从终端运行程序,将标准输入重定向到从文件中读取。在这种情况下,EOF 事件将始终发生在输入的末尾。

$./test < myinputfile.txt

最新更新