C 回车 : Changing Output Like apt-get

标签 c carriage-return

在某些基于 Linux 的操作系统(如 Ubuntu)中,您可以使用 apt-get 命令在终端内从互联网下载。当您下载某些内容时,它会以百分比形式显示包的下载量。此百分比会随着包的下载而变化。我怎样才能使 C 程序以类似的方式运行?这是我的代码

#include <stdio.h>
#include <unistd.h>

int main(){
    int i = 0;
    for (; i < 10; i++){
        printf("\rCalculating...%d%%",i);
        usleep(500000);
    }
    printf("\n");
    return 0;
}

我使用 gcc 编译它,但没有得到 Calculating...1%Calculating...2% 等。在我预期的输出中,什么也没有出现。几秒钟后,唯一的输出是 Calculating...9%\n。中间的数字均未显示。这是为什么?

最佳答案

好吧,在每个 printf 之后添加一个 fflush(stdout) 以强制刷新

关于C 回车 : Changing Output Like apt-get,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24732285/

相关文章:

c++ - 我如何布局混合 C 和 C++ 的函数原型(prototype)

c# - 在 C# 中,\n 和\r\n 有什么区别?

c - 函数将 "wrong"值写入寄存器 - PIC18F

c - 如何通过串口打印 float ?

c - 如何将 3x3 的卷积核与图像相乘

c - 在 C 中传递时,“Char”被提升为 'int'

windows-phone-7 - 我们可以在Windows Phone的resx文件中添加回车('\n')吗?

python - 使用\r 在 Linux 上不工作覆盖 Python 中的前一行

python - 在 mac 上覆盖 python 3.x 中的打印行

newline -\n 和\r 之间的区别?