众所周知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 }