7

可能重复:
为什么 printf 在调用后不刷新,除非换行符在格式字符串中?

当我运行类似的东西时

for (i = 1; i <= 10; i++) {
    sleep(1);
    printf(".");
}

那么我期望的是每秒一个点十次。我得到的是十秒后的十个点。为什么会这样,我如何让程序每秒(或不同的时间间隔)实际打印一个点(或做其他事情)?

4

1 回答 1

11

正在缓冲数据,您可以使用以下printf()命令强制它刷新该数据fflush(stdout)

for (i = 1; i<=10; i++) 
{  
    sleep(1); 
    printf("."); 
    fflush(stdout);
}
于 2012-11-14T19:29:03.923 回答