我有一个如下所述的节点链接列表:
class ColorGr
{
string word;
string color;
ColorGr *next;
}
我有一个字符串,我想在其中搜索“单词”并用“颜色”为它们着色。
我尝试使用 ncurses 来做到这一点,但问题在于使用 Windows。我不想刷新屏幕。
我想像cout
函数一样在输出中打印字符串。我的代码是 c++ 语言,我在 linux 中使用 gcc。做这个的最好方式是什么?
On Windows, you can use console APIs, and manipulate colors:
DWORD dummy = 0;
const WORD color = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE; // gray
HANDLE console = ::GetStdHandle (STD_OUTPUT_HANDLE);
SetConsoleTextAttribute (console, color);
WriteConsoleA (console, msg.data (), msg.length (), &dummy, NULL);
Or another way, for Linux, you can use ANSI color codes (not all terminals support, most (except for windows) should.)
e.g.
fprintf (stdout, "\e[0;36m" "cyan colored text" "\e[0m");
就 windows 问题而言,我不知道您是否看过 PDACurses,所以这里有一个 SO 链接,以防万一Ncurses workaround for windows。