为什么我从键盘输入EOF Clion不在Run窗口打印程序的输出?

时间:2017-08-21 19:00:06

标签: c++ 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的Run窗口中 1 2 cmd+d我明白这个

1 2 ^D

Process finished with exit code 0

3 个答案:

答案 0 :(得分:2)

在MacOS中,EOF(带键盘)为Cmd + D.
在CLION中可以设置:

  

档案 - &gt;偏好 - &gt; KeyMap - &gt;搜索EOF并设置Cmd + D.

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

Example of execution in CLion

答案 1 :(得分:1)

在某些环境中,使用Ctrl + Z组合而不是Ctrl + D

执行EOF仿真

要避免此类问题,请创建包含您要输入内容的文件“1 2”

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

Public Sub mySend()
  Dim sourceFolder as String

  On Error resume Next
  sourceFolder = Application.CommandBars.ActionControl.Parameter
  On Error goto 0

  if sourceFolder <> "" Then GoOnAndDoWhatever(sourceFolder)
End Sub

答案 2 :(得分:1)

这是Windows上的CLion known issue。在Registry中禁用run.processes.with.pty(通过Find Action打开)通常会有所帮助。