[英]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);
另外(上面有用的\\r
& fflush
建议 ),如果你想要全屏控制台输出,可以考虑使用ncurses 。 如果你想要一个可编辑的输入行,那么GNU readline库也很有用!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.