【问题标题】:Can I implement a small subset of Curses in pure C++ (or any similar language) easily?我可以轻松地用纯 C++(或任何类似语言)实现一小部分 Curses 吗?
【发布时间】:2012-12-09 06:30:20
【问题描述】:

(我找不到与此相关的任何内容,因为我不知道要搜索什么关键字)。

我想要一个简单的函数 - 打印 3 行,然后擦除 3 行并替换为新的。如果它是一行,我可以打印 \r\b 并覆盖它。

如果没有 Curses 库,我怎么能做到这一点?必须有一些转义码或其他东西。

我发现了一些转义码来打印彩色文本,所以我猜有类似的东西可以覆盖前面的行。

我希望它至少可以在 OSX 和 Ubuntu 上运行。

编辑:我发现了这个 - http://www.perlmonks.org/?displaytype=displaycode;node_id=575125

是否有所有此类可用命令的列表?

【问题讨论】:

    标签: unix terminal curses


    【解决方案1】:

    (简短回答:是的。有关 ANSI 序列的完整列表,请参阅 Wikipedia 中的“ANSI Escape code”。您的终端可能是也可能不是 ANSI,但 ANSI 序列支持似乎很常见 - 至少是一个很好的起点)。 这些命令取决于您使用的终端,或者这些天当然是终端模拟器。 过去,有一些物理盒子,名称如“VT-100”或“Ontel”。 每个人都实现了他们选择的任何一组转义序列命令。

    当然,最近我们只使用模拟器。几乎每一种命令行类型的界面都在模拟某些东西的文本窗口中运行。

    Curses 是一个库,允许普通程序员编写代码来操作终端,而不必知道如何为那里的许多不同终端中的每一个编写代码。类似于打印机驱动程序,您无需了解任何特定打印机的详细信息即可进行打印。

    首先您需要了解您使用的是哪种终端。 然后你可以查找具体的命令。 一种可能的答案是here。 “ANSI”是常见的,典型的MSDOS。

    或者,使用诅咒并为此感到高兴:-)

    【讨论】:

      猜你喜欢
      • 2017-10-16
      • 2015-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-02
      • 2015-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多