【问题标题】:Clion `cout` and `cin` combination causes console to not work properlyClion `cout` 和 `cin` 组合导致控制台无法正常工作
【发布时间】:2021-11-10 02:58:45
【问题描述】:

我最近开始尝试使用 CLion 进行 C++ 编程。我想测试一个示例应用程序(如下):

#include <iostream>

int main()
{
    std::cout << "Please enter a number: ";
    int x;
    std::cin >> x;

    std::cout << "Your number was " << x << "!\n";
    return 0;
}

这是我所期望的(数字是用户输入):

Please enter a number: 10
Your number was 10!

这正是我手动编译和运行时发生的情况 (g++ main.cpp -o main &amp;&amp; ./main) 但是,当我使用 CLion 运行时会发生这种情况:

有谁知道为什么会这样,我该如何解决这个问题?

注意:我在 WSL2 上使用 CLion 和 g++ 编译器(版本 9.3.0)

【问题讨论】:

  • 为什么会发生what?一切看起来都很好。
  • @NicolBolas 首先,“请输入数字:”文本后面的空格没有打印出来。其次,在输入输入后,它会在下一行打印出来,即使我的代码从未说过要这样做。之后的一切都很好; std::cout 和 std::cin 的组合似乎无法正常工作。
  • @NicolBolas 我应该指出,当我只运行 g++ main.cpp -o main 然后 ./main 而不是单击 CLion 中的“运行”按钮时,这会按预期工作。

标签: c++ io c++17 clion


【解决方案1】:

经过一番搜索,我发现了this StackOverflow 帖子,这使我进入了this 问题(点赞!),这最终导致我按照 cmets 中的说明进行操作:

有两种解决方法:

  • 关闭 PTY:通过禁用注册表中的 run.processes.with.pty 选项(帮助 -> 查找操作 -> 注册表...)
  • 改用 Cygwin64

我选择了第一个选项,现在 CLion 工作正常:

这似乎是 MinGW 和 WSL 的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多