使用 sleep() 延迟打印字符

Print characters with some delay using sleep()

#include<stdio.h>
int main()
{   int n=3;
    while(n>0)
    {   printf("P");
        n--;
        sleep(1);
    }
    return 0;
}

使用此代码,3 秒后会同时出现 3 个 P。但我希望它以 1 秒的时间间隔一个接一个地出现。我该如何修改?

问题是 printf 没有刷新缓冲区。为此,您可以在 P 之后打印 '\n' : printf("P\n");

在标准输出上调用 fflush :

printf("P");
fflush(stdout);

你是说这个:

#include<stdio.h>
int main(){  

 int n=3;
 sleep(1);

    while(n>0){   
        printf("P");
        n--;
        sleep(1);
      }
return 0;
}