[英]Why the command \r in printf() doesn't work?
我正在尝试更新终端上的文本而不必再次打印文本。 现在我正试图用一个简单的代码来做到这一点:
#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;
}
代码实际上什么也不打印,指针在行首闪烁。
有人能帮我吗?
标准 output stream 通常是行缓冲的,因此如果您不打印换行符(即\n
),则 output 将保留在缓冲区中。
调用printf
后,调用fflush(stdout);
. 这将刷新标准 output stream 以便您可以看到文本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.