printf输出缓存问题

printf输出函数,每执行一个printf输出函数,输出的数不是“肯定立刻”打印到屏幕上的,只有遇到一下几种情况时,printf输出的数据(执行了printf,但还没有打印到屏幕的数据)才会全部打印到屏幕上:
1、有输入请求的时候,会立马输出到屏幕
2、输出有换行符的时候,也会马上输出到屏幕上
3、程序结束的时候也会马上输出到屏幕上
4、输出缓冲区满的时候

linux下除非碰到换行符(\n),否则会等到缓冲区满才会输出。

如下程序,不会隔1秒输出,而是在10秒后,一起输出显示

for(int i=0;i<10;i++)

 {

  printf("[Downlaod %d]",i);

  usleep(1000*1000);

 }

写成这样才会隔一秒显示输出

for(int i=0;i<10;i++)

 {

  printf("[Downlaod %d]\n",i);

  usleep(1000*1000);

 }

或者,在每次printf后加

fflush(stdout);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值