C语言中的Printf函数直到循环完成后才打印

时间:2018-07-17 20:11:18

标签: c while-loop printf sdl fflush

我想测试是否有不同的循环处于活动状态,所以我有一个print语句,该语句在每个循环中每500ms重复一次,但是print语句不会每500ms打印一次,它会等到循环完成后才立即打印所有内容而不是定期。

如何使我的程序定期打印到终端?

我是一名学生,所以我对SDL的知识非常有限,因此请您详细解释。

int main(void)
{
    int i = 0;
    while(i<10)
        {
            printf("While loop active.\t"); i++;
            SDL_Delay(500);
        }
    return 0;
}

P.S。我看到了重复的问题,但我不同意,因为他的问题表明存在“信号处理”问题,对此我一无所知,因此当我问这个问题时,我认为他的问题不会与我的问题有相同的答案。我接受给出的答案是一样的。

1 个答案:

答案 0 :(得分:0)

您可能没有刷新标准输出。将新行添加到printf调用中,您应该可以:

printf("While loop active.\n");
/* Here ------------------^ */

或者如果必须保留\ t:

printf("While loop active.\t");
fflush(stdout);

贷记@lurker以获取更多信息。