C 中的 Printf 函数在 while 循环完成之前不打印

Printf function in C not printing until while loop finished

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

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

我是一名学生,所以我对 SDL 的了解非常有限,因此不胜感激。

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

P.S。我看到了那个重复的问题,但我不同意,因为他的问题暗示了 'signal handling' 的问题,我对此一无所知,所以在问这个问题时,我认为他的问题不会与我的答案相同。我接受给出的答案是一样的。

您可能没有刷新标准输出。在 printf 调用中添加一个换行符,您应该没问题:

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

或者如果保留 \t 是必要的:

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

感谢@lurker 以获取更多信息。