关于printf显示输出

发布时间 2023-04-13 22:30:58作者: sgggr

printf显示输出

printf在满足以下三个条件之一时,会将缓冲区中的数据输出:

  • 需要换行符\n
  • printf的缓冲区满了(1KB)
  • 程序终止

Qt中printf不同步的解决办法

c程序中的printf在应用程序输出窗口中不同步输出。通常是当程序执行完才会把printf的输出一下子全出来。调试程序不方便。
经测试是输出到stdout的字符只有超过4096才输出一次。

解决方法(二选一即可):

  1. 在程序开始处增加:setbuf(stdout, NULL);
  2. 每个printf后增加一条fflush(stdout);

参考网址:https://forum.qt.io/topic/10654/solved-printf-scanf-not-working
http://www.pixelbeat.org/programming/stdio_buffering/