众所周知printf函数为行缓存,换句话说在写printf的时候如果不在末尾加“\n”的话,printf不会在屏幕上打印出来,验证代码如下(注意:在Linux环境下编译运行;如果在Windows环境下就没问题,本人亲测):
1 #include <unistd.h> 2 #include <stdio.h> 3 4 int main(){ 5 int a = 0; 6 while(1){ 7 printf("%d",a++); 8 sleep(1); 9 } 10 return 0; 11 }
如果要在屏幕输出,可以用两种方法:
1、在printf中加入“\n”
#include <unistd.h> #include <stdio.h> int main(){ int a = 0; while(1){ printf("%d\n",a++); sleep(1); } return 0; }
2、加入fflush()函数
1 #include <unistd.h> 2 #include <stdio.h> 3 4 int main(){ 5 int a = 0; 6 while(1){ 7 printf("%d",a++); 8 fflush(stdout); 9 sleep(1); 10 } 11 return 0; 12 }