繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM