以下是代码片段。
int main()
{
int i =0;
while (i++ < 5)
{
// Do some heavy processing
printf("i = %d\n", i);
sleep(1);
}
}
繁重的处理部分每 1 秒执行一次。 我也想在 1 秒后显示“i”,但它在完成后显示整个输出。我知道使用 while 并不是一种非常优雅的方式来做到这一点,但它似乎更容易。实现这一目标的最佳方式是什么?
我在 unix 中运行代码,gcc complier
最佳答案
你需要刷新标准输出;你可以使用 fflush(3) 这样做:
fflush(stdout);
你也可以在标准输出上完全禁用缓冲:
setbuf(stdout, NULL);
关于c - 使用 sleep 后无法在定期间隔后显示输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10083051/