printf显示输出
printf在满足以下三个条件之一时,会将缓冲区中的数据输出:
- 需要换行符\n
- printf的缓冲区满了(1KB)
- 程序终止
Qt中printf不同步的解决办法
c程序中的printf在应用程序输出窗口中不同步输出。通常是当程序执行完才会把printf的输出一下子全出来。调试程序不方便。
经测试是输出到stdout的字符只有超过4096才输出一次。
解决方法(二选一即可):
- 在程序开始处增加:setbuf(stdout, NULL);
- 每个printf后增加一条fflush(stdout);
参考网址:https://forum.qt.io/topic/10654/solved-printf-scanf-not-working
http://www.pixelbeat.org/programming/stdio_buffering/