使用sleep()函数逐个打印秒

时间:2011-04-07 19:27:40

标签: printing ubuntu sleep seconds

for(j = 1; j < 11; j++)
        {
            printf("%ds ",j);
            sleep(1);
        }

我原本预计此代码会打印“1s 2s 3s ... 10s”,它们之间有1秒的间隔,但它会在10秒后打印所有数字。我应该怎么解决? 我正在研究ubuntu。

2 个答案:

答案 0 :(得分:2)

stdout流已缓冲,因此如果您想立即获得结果,则需要使用fflush()刷新该缓冲区:

for (j = 1; j < 11; j++) {
    printf("%ds ", j);
    fflush(stdout);
    sleep(1);
}

答案 1 :(得分:0)

在你的printf上加一个\ n来刷新。

for(j = 1; j < 11; j++)
        {
            printf("%ds\n",j);
            sleep(1);
        }

有关详细信息,请参阅here