0

我有一个如下所述的节点链接列表:

class ColorGr
{
    string word;
    string color;
    ColorGr *next;
}

我有一个字符串,我想在其中搜索“单词”并用“颜色”为它们着色。

我尝试使用 ncurses 来做到这一点,但问题在于使用 Windows。我不想刷新屏幕。

我想像cout函数一样在输出中打印字符串。我的代码是 c++ 语言,我在 linux 中使用 gcc。做这个的最好方式是什么?

4

2 回答 2

2

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);

more colors here (link)

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");
于 2013-01-22T08:00:07.047 回答
0

就 windows 问题而言,我不知道您是否看过 PDACurses,所以这里有一个 SO 链接,以防万一Ncurses workaround for windows

于 2013-01-22T07:45:02.620 回答