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