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

标签 c while-loop printf sdl fflush

<分区>

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

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

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

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

附言我看到了那个重复的问题,但我不同意,因为他的问题暗示了一个我一无所知的“信号处理”问题,所以在问这个问题时,我认为他的问题不会和我的答案相同。我接受给出的答案是相同的。

最佳答案

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

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

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

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

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

关于c - C 中的 Printf 函数在 while 循环完成之前不打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51389479/

相关文章:

c - 指向数据类型的单个对象/实例的指针的命名

c - 在其他文件中的结构/数组上使用 malloc

c - 循环迭代的次数与输入中的字符数相同

c - 在 while 循环中 scanf 第二次被跳过

python - 因此,我正在制作一个程序,可以多次向用户重复问候语,但是当他们想要继续时,它不会显示该代码

scala - Scala 中类型安全的格式化输出

bash - 如何将文本与 printf 对齐到具有非 ascii 字符的列中?

c - 在C中将指针传递给结构数组

f# - 字符串不兼容

c - 在没有新 malloc 的情况下从现有字符串动态构造一个数组