怎么睡在c

foa*_*aly 7 c sleep

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

当我运行类似的东西

for (i = 1; i <= 10; i++) {
    sleep(1);
    printf(".");
}
Run Code Online (Sandbox Code Playgroud)

那么我所期待的是每秒一个点十次.我得到的是十秒后十点.为什么会如此,以及如何使程序每秒(或不同的时间间隔)实际打印一个点(或做其他事情)?

Mik*_*ike 11

printf()正在缓冲数据,你可以强制刷新该数据有fflush(stdout):

for (i = 1; i<=10; i++) 
{  
    sleep(1); 
    printf("."); 
    fflush(stdout);
}
Run Code Online (Sandbox Code Playgroud)