簡體   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