为什么不是一个一个的打印
为什么带有sleep函数的程序在ubuntu终端上打印不是每隔1s打印一次,而是到最后全部一起打印。 简单的程序也是这样的,奇怪了。以前都没发现这种问题,不知道哪里有问题。
#include<stdio.h>
int main(int argc, char *argv[])
{
int i = 10;
for(; i >= 0; i--)
{
printf("%d ", i);
sleep(1);
}
printf("\n");
return 0;
}
sleep之前加一句 fflush(stdout); giantchen 发表于 2016-09-11 08:11
sleep之前加一句 fflush(stdout);
谢谢啊,现在可以一个字的打印了,谢谢。对了printf是带缓存的标准io吗? 谢谢原来我以前一直错了,printf是行缓存的函数。 你可以把stdout设为“不缓冲” lxyscls 发表于 2016-09-11 12:41
你可以把stdout设为“不缓冲”
如何设置呢?我以前完全没能过?,是不是写成"sterror"吗? 寻觅者6 发表于 2016-09-11 13:06
如何设置呢?我以前完全没能过?,是不是写成"sterror"吗?
man setvbuf不是设置成stderr
io有缓存 楼上几个说的很清楚了 printf("%d ", i); ----> printf("%d \n", i); 回复 6# 寻觅者6
如何设置呢?
setvbuf(3)
页:
[1]
2