coa*_*nor 9 c linux command-line
在Linux中,在stdout
命令行中,我想更新特定区域,例如apt-get
输出:
54% [Waiting for headers] [Waiting for headers] 211 kB/s 3s
Run Code Online (Sandbox Code Playgroud)
的百分比,千字节/秒和第二将更新每一秒.
如果我们使用printf
那么我们将获得多行输出.我试过以下printf
:
printf("\e[1;1H\e[2J");
Run Code Online (Sandbox Code Playgroud)
但它清除了所有输出.
我的问题是如何更新特定区域并保持其他区域稳定?
使用回车.它会将光标移回到行的开头,您可以从该行开始覆盖行中的内容.例如:
printf("Hello, world!\rX");
Run Code Online (Sandbox Code Playgroud)
将显示为:
Xello, world!
Run Code Online (Sandbox Code Playgroud)
stdout
如果您希望它可见,请确保经常刷新:
fflush(stdout);
Run Code Online (Sandbox Code Playgroud)