2011-04-01 51 views
0

我想和printf的控制檯顯示,其中週期性我得到3個頻道的一些投入,我想打印樣系:printf的控制檯格式化

Channel1 Last_message_1 
Channel2 Last_message_2 
Channel3 Last_message_3 

,並在新信息出現在通道2我想要覆蓋控制檯的那部分。像:

Channel1 Last_message_1 
Channel2 New_message_2 
Channel3 Last_message_3 

我知道這種東西可以用printf來完成,但我不記得如何。任何指針?

回答

0
printf ("\033[2;1H");  // move to 2nd line 
0

據我所知,你只能改變最後一行用printf的,在這裏你想改變任何一行,所以我認爲你需要看看ncurses

0

你不能這樣做printf便攜式。如果你的控制檯支持它,你可以發送ANSI控制代碼來定位光標 - 但是ANSI控制代碼相當笨拙,而且很多「控制檯」不支持它們,在這種情況下,你會得到一個很多額外的垃圾與您試圖製作的數據。

留下的東西至少在理論上是不可移植的。如果可移植性仍然重要,那麼我在這些方面的直接選擇可能就是ncurses - 它設計合理,設計合理,使用相當簡單,而且便於攜帶。

如果我確信可移植性完全不重要,並且我純粹寫作Windows(例如),那麼使用本地控制檯功能是值得考慮的。它是開放的說法,這是很少一個很好的權衡,但 - 你失去所有的便攜性,並獲得只有速度等