便携式基于文本的控制台操纵器
Posted
技术标签:
【中文标题】便携式基于文本的控制台操纵器【英文标题】:Portable text based console manipulator 【发布时间】:2011-12-14 03:27:17 【问题描述】:应用程序可以操作基于文本的控制台或终端,并更改它们的颜色、设置光标位置。支持的方法是:
对于类 Unix 系统:有ANSI escape code
。
对于 Windows 系统: 有像 SetConsoleTextAttribute
这样的 API。
...
但是,是否有任何轻量级和可移植的 C/C++ 库仅处理操作系统之间的颜色和光标差异?如果技术上不可能,但尽力而为,则什么也不做。
注意:我不是在寻找繁重的外部工具来模拟类 unix 的终端(如 Cygwin、Msys-rxvt、...)。我认为使用 Windows API 和 ANSI 转义码可以实现简单的可移植性。 而不是 ncurses,因为它很重,并且具有完整控制台的许多功能,我认为它需要模拟。 p>
【问题讨论】:
@Nim:它需要 Windows 终端模拟器 - 阅读我更新的问题 @MasoudM.: windows 上有 PDCurses(MonoCurses 显然使用它) 【参考方案1】:好吧,我终于找到了一个便携易用的库:rlutil.h
用法:
#include <iostream>
#include "rlutil.h"
int main()
for (int i = 0; i < 16; i++)
rlutil::setColor(i);
std::cout << i << " ";
std::cout << std::endl;
return 0;
但是,我会很高兴有其他建议。
【讨论】:
很好的发现。虽然我不知道我是否应该怀疑开发人员在他的网站上选择颜色的熟练程度! :) 有谁知道如何将颜色重置为默认值?一旦我更改它们,终端的默认颜色就会变成我最后使用的任何颜色,并且在我尝试过的任何终端(xterm
、gnome-terminal
和可敬的cmd.exe
)上,实际上没有颜色映射到默认颜色
很难将它的许可协议呈现给我的法律人员。 :-)以上是关于便携式基于文本的控制台操纵器的主要内容,如果未能解决你的问题,请参考以下文章