我正在尝试更新终端上的文本,而不必再次打印该文本。现在我正在尝试用简单的代码来完成它:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char *argv[]){
for(int i=0;i<=100;++i){
printf("\r[%3d%%]",i);
sleep(1);
}
printf("\n");
return 0;
}
代码实际上什么也不打印,指针在行的开头闪烁。
有人可以帮助我吗?
最佳答案
标准输出流通常是行缓冲的,因此如果您不打印换行符(即 \n
),那么输出将保留在缓冲区中。
调用printf
后,调用fflush(stdout);
。这将刷新标准输出流,以便您可以看到文本。
关于c - 为什么 printf() 中的命令\r 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74722334/