我试图在终端上更新文本,而不必再次打印文本。现在我试着用一个简单的代码来做:
#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);
。这将刷新标准输出流,以便您可以看到文本。