• 6865阅读
  • 4回复

[原创]QtCreator 的 printf 问题 [复制链接]

上一主题 下一主题
离线joy_zhou
 
只看楼主 倒序阅读 楼主  发表于: 2011-12-29
在windows下使用Qt Creator debug 时,没有仿 dos 窗口,printf 无法显示数据,把下列代码添加在 main() 函数前,使printf的显示重定向到 Application Output 窗口,以方便调试。在 release 中维持原程序功能,也不增加任何代码。

#if defined(QT_DEBUG)
int printf(const char *format,...)
{char buf[500]; int i;
va_list vlist;
va_start(vlist,format);
i=vsprintf(buf,format,vlist);
va_end(vlist);
qDebug()<<buf;
return i;
}
#endif
离线jdwx

只看该作者 1楼 发表于: 2011-12-29
回 楼主(joy_zhou) 的帖子
qDebug用着挺方便。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线begboy

只看该作者 2楼 发表于: 2011-12-29
回 1楼(jdwx) 的帖子
尽管 有其他简单的方法 解决这个问题:
例如:二楼 的 使用qDebug;
        或者 在pro文件 增加 CONFIG += console 和 头文件

但楼主上述方法体现的:正是 Unix (Linux) 开发精神!
没有工具我们自己创造工具!
赞一个!

begboy
离线joy_zhou
只看该作者 3楼 发表于: 2011-12-29
回 2楼(begboy) 的帖子
谢谢2楼的提醒。
在pro文件 增加 CONFIG += console,并选择 Projects > Run Settings > Run in terminal,则在windows下使用Qt Creator debug时,产生terminal窗口(仿 dos 窗口),printf 可以正常显示。无需以上代码。
离线begboy

只看该作者 4楼 发表于: 2011-12-29
回 3楼(joy_zhou) 的帖子
不用客气。

begboy
快速回复
限100 字节
 
上一个 下一个