我有一个链接的节点列表,如下所述:
class ColorGr
{
string word;
string color;
ColorGr *next;
}
我有一个字符串,我想在其中搜索“word”,并用“color”将它们着色。
我试过ncurses这样做,但问题是使用Windows。我不希望屏幕被刷新。
我想在输出中打印字符串,就像cout
函数一样。我的代码是用c ++语言编写的,我在linux下使用gcc。
这样做的最佳方式是什么?
答案 0 :(得分:2)
在Windows上,您可以使用控制台API并操作颜色:
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);
或者另一种方式,对于Linux,您可以使用ANSI color codes(并非所有终端支持,大多数(Windows除外)应该。)
e.g。
fprintf (stdout, "\e[0;36m" "cyan colored text" "\e[0m");
答案 1 :(得分:0)
就windows问题而言,我不知道你是否看过PDACurses,所以这里有一个SO链接以防Ncurses workaround for windows。