繁体   English   中英

如何更新命令行输出?

[英]How to update command line output?

在Linux中,当stdout到命令行时,我想更新特定区域,例如apt-get输出:

54% [Waiting for headers] [Waiting for headers]        211 kB/s 3s

百分比kB / s每秒更新。

如果我们使用printf那么我们将获得多行输出。 我试过跟随printf

printf("\e[1;1H\e[2J");

但它清除了所有输出。

我的问题是如何更新特定区域并保持其他区域稳定?

使用回车。 它会将光标移回到行的开头,您可以从该行开始覆盖行中的内容。 例如:

printf("Hello, world!\rX");

将显示为:

Xello, world!

如果您希望它显示,请确保经常刷新stdout

fflush(stdout);

另外(上面有用的\\rfflush 建议 ),如果你想要全屏控制台输出,可以考虑使用ncurses 如果你想要一个可编辑的输入行,那么GNU readline库也很有用!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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