Clion `cout` 和 `cin` 组合导致控制台无法正常工作

问题描述 投票:0回答:2

我最近开始尝试使用 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 && ./main
) 然而,这就是我使用 CLion 运行时发生的情况:

有谁知道为什么会发生这种情况,以及我该如何解决这个问题?

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

9.3.0

c++ io c++17 clion
2个回答
1
投票

经过更多搜索,我发现了 this StackOverflow 帖子,这让我找到了 this 问题(点赞!),最终让我按照评论中的指示去做:

有两种解决方法:

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

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

看起来这是 MinGW 和 WSL 的问题。


0
投票

我在 CLion 中遇到了同样的问题。为了解决这个问题,我向 CLion 支持团队的专家发送了一封电子邮件。这是他们的答案:

通常,stdin 和 stdout 不同步,除非它们运行在 交互式终端环境。您可以通过启用来模拟这一点 编辑中的输出控制台选项中的模拟终端 配置选项卡

© www.soinside.com 2019 - 2024. All rights reserved.