为什么如果我从键盘输入 EOF Clion 不在 运行 window 上打印程序的输出?
Why if I input EOF from keyboard Clion don't print on Run window the output of the program?
我刚开始使用 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的运行 window中,我从键盘输入后
1 2 cmd+d
我明白了
1 2 ^D
Process finished with exit code 0
在某些环境中,EOF 仿真是使用 Ctrl+Z 组合而不是 Ctrl+D 执行的
为避免此类问题 - 创建包含您要输入“1 2”的内容的文件
和 运行 您的程序从终端重定向标准输入以从文件中读取。在这种情况下,EOF 事件将始终发生在输入结束时。
$./test < myinputfile.txt
这是一些 known issue 与 Windows 上的 CLion。在注册表中禁用 run.processes.with.pty(通过查找操作打开)通常会有所帮助。
在 MacOS 中,EOF(带键盘)是 Cmd+D。
在 CLion 中可设置于:
File -> Preferences -> KeyMap -> search EOF and set Cmd+D.
但是,我建议您在代码中使用 终止字符,例如在 this 情况下不会改变结果的零。
Example of execution in CLion
我刚开始使用 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的运行 window中,我从键盘输入后
1 2 cmd+d
我明白了
1 2 ^D
Process finished with exit code 0
在某些环境中,EOF 仿真是使用 Ctrl+Z 组合而不是 Ctrl+D 执行的
为避免此类问题 - 创建包含您要输入“1 2”的内容的文件
和 运行 您的程序从终端重定向标准输入以从文件中读取。在这种情况下,EOF 事件将始终发生在输入结束时。
$./test < myinputfile.txt
这是一些 known issue 与 Windows 上的 CLion。在注册表中禁用 run.processes.with.pty(通过查找操作打开)通常会有所帮助。
在 MacOS 中,EOF(带键盘)是 Cmd+D。
在 CLion 中可设置于:
File -> Preferences -> KeyMap -> search EOF and set Cmd+D.
但是,我建议您在代码中使用 终止字符,例如在 this 情况下不会改变结果的零。
Example of execution in CLion