c语言 - 为什么 printf() 中的命令 \r 不起作用?



我试图在终端上更新文本,而不必再次打印文本。现在我试着用一个简单的代码来做:

#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);。这将刷新标准输出流,以便您可以看到文本。

相关内容

  • 没有找到相关文章

最新更新