关于延时打印的问题

来源:互联网 发布:北京哪里体检好 知乎 编辑:程序博客网 时间:2024/05/16 19:25

今天同学问到一个问题,他想延时输出一串数字,为了美化程序嘛,可是在程序中加入sleep(1)好像不行,因为要等循环执行完了,等了n个睡眠之后才能一下全输出在屏幕上了,后来我给他想了一个笨方法,就是用for空循环,执行差不多一亿次,可以实现了,问题又来了,我实现的时候printf()中有个'\n',当把'\n'去掉的时候,又出现了等待n久一次全部打印的情况,唉!这是什么情况呢??只好baidu一下!

原来,在打印的时候,要输出的内容并没有马上打印在屏幕上,而是存入了缓存中,解决方法就是用fflush()强制把缓冲内容打印即可。例如:

  1 #include <stdio.h>
  2 main()
  3 {
  4         int a;
  5         for(a=1;a<10;a++)
  6         {
  7                 printf("%d",a);
  8                 fflush(stdout);
  9                 sleep(1);
 10         }       
 11 }