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 以获取更多信息。
我想测试不同的循环是否处于活动状态,所以我有一个打印语句在每个循环中每 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 以获取更多信息。