怎么睡在c

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

当我运行类似的东西

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

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

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

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