【发布时间】:2020-12-24 19:52:51
【问题描述】:
我刚刚将 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;
}
注意:当我在调试器之外运行时 - 没有问题。
有没有人遇到过这个并修复它?关于如何解决它的任何想法?
【问题讨论】:
-
Ubuntu 中的“在终端中运行”并非如此,因此问题似乎与特定控制台与 Qt Creator 的集成有关。
-
通过寻找解决方法,我重新安装了 QTC 4.13,但问题仍然存在。我还安装在 Windows 和 Linux 虚拟机上。那里没问题。
-
找到了解决方法。我没有从 QTC 运行程序,而是从命令行运行,并使用“调试”菜单选项“附加到正在运行的应用程序”或“附加到未说明的应用程序”。
-
您能向 Qt 公司发布一个错误吗?我在拥有公司帐户时只做过几次,但相信个人也可以这样做:bugreports.qt.io/secure/Dashboard.jspa
-
其实……我今天早上就这么做了。