2011-04-01 46 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(例如),那么使用本地控制台功能是值得考虑的。它是开放的说法,这是很少一个很好的权衡,但 - 你失去所有的便携性,并获得只有速度等