C 仅在while循环结束时打印文本

C 仅在while循环结束时打印文本,c,printf,C,Printf,我想在每次循环运行时打印文本,但我的程序只在上次循环运行时打印文本。 我的代码: 最后,我只需在一瞬间获得所有输出。添加fflush(stdout)在printf之后,将输出从缓冲区刷新到stdout 在缓冲区已满或出现特殊字符(如“\n”)之前,输出不会转到标准输出。您需要手动执行此操作(通过调用fflush)。printf使用缓冲区。因此,仅当缓冲区已满或缓冲区已刷新时才会打印。尝试使用。这将在执行睡眠之前清除标准输出缓冲区。因此,您的新代码块将如下所示: while (shots>i

我想在每次循环运行时打印文本,但我的程序只在上次循环运行时打印文本。 我的代码:

最后,我只需在一瞬间获得所有输出。

添加
fflush(stdout)
printf
之后,将输出从缓冲区刷新到
stdout


在缓冲区已满或出现特殊字符(如“\n”)之前,输出不会转到标准输出。您需要手动执行此操作(通过调用
fflush
)。

printf
使用缓冲区。因此,仅当缓冲区已满或缓冲区已刷新时才会打印。

尝试使用。这将在执行睡眠之前清除标准输出缓冲区。因此,您的新代码块将如下所示:

while (shots>i){
  printf ("%s", message);
  fflush(stdout);
  i++;
  sleep(1);
}
输出缓冲。请尝试:printf(“%s\n”,..)或fflush(stdout)。
while (shots>i){
  printf ("%s", message);
  fflush(stdout);
  i++;
  sleep(1);
}