繁体   English   中英

QT Creator 无法从调试器中的 stdin 读取

[英]QT Creator Can't read from stdin in debugger

我刚刚将 QT Creator 更新到 4.13.0,现在我在调试器中无法从标准输入读取。

一些细节...

  • 我在 macOS 上运行。
  • 我正在编写 C++,但使用 C stdio 库。 (由于历史原因)
  • 我在 c++11 模式下使用 clang 15.5.0。
  • 我正在使用“从终端运行”调试器选项。

问题:尽可能输入,当我的代码进入fgets它永远不会返回。

简化示例:

#include <stdio.h>

int main()
{
    char buf[1024];
    if (fgets(buf,1024, stdin)) // In debugger, this call never returns!
    {
        fprintf(stderr, "%s", buf);
    }

    return 0;
}

注意:当我在调试器之外运行它时 - 没有问题。

有没有人遇到这个并修复它? 关于如何解决它的任何想法?

可能是 QtCreator 中终端启动应用程序 openTerminal.py 的问题。

我有一个类似的问题,在没有调试器的调试模式下启动时,我的控制台应用程序的输出正确出现在终端会话中,但是当开始使用调试器时,所有系统输出和系统错误都被写入应用程序输出小部件,因此无法从 std::in 读取任何值。

解决方案是:管理套件:环境系统将长路径“.../openTerminal.py”替换为“/Applications/Utilities/Terminal.app”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM