【发布时间】:2010-01-04 21:52:47
【问题描述】:
现在,我正在开发一个控制台应用程序,它应该以给定的时间间隔向控制台显示和更新信息。我遇到的问题是,使用回车,我一次只能更新一行文本。如果我使用换行符,则无法再使用回车更新旧行。
我可以在这里做什么?
【问题讨论】:
标签: c++ console printf stdout cout
现在,我正在开发一个控制台应用程序,它应该以给定的时间间隔向控制台显示和更新信息。我遇到的问题是,使用回车,我一次只能更新一行文本。如果我使用换行符,则无法再使用回车更新旧行。
我可以在这里做什么?
【问题讨论】:
标签: c++ console printf stdout cout
您也许可以找到适用于您的平台的curses library 变体。
【讨论】:
正确的答案是使用 Mark 提到的 curses 库。但是,如果您使用的是类 Unix 系统并且不能被诅咒所困扰,那么快速而肮脏的解决方案是直接打印出 vt100 转义序列:
http://ascii-table.com/ansi-escape-sequences-vt-100.php
我经常这样做,尤其是在没有 curses 绑定的脚本语言中。
【讨论】:
这是一个非常丑陋的解决方案,但在紧要关头,您总是可以完全清除控制台,然后重新打印所有内容。在某些情况下,这种策略看起来有点难看;它可能会让事情看起来很模糊。
【讨论】: