#define Color_Red "\33[0:31m\\]" // Color Start
#define Color_end "\33[0m\\]" // To flush out prev settings
#define LOG_RED(X) printf("%s %s %s",Color_Red,X,Color_end)
foo()
{
LOG_RED("This is in Red Color");
}
#include <stdio.h>
#define ANSI_FONT_COL_RESET "\x1b[0m"
#define FONT_COL_CUSTOM_RED "\e[38;2;200;0;0m" // where rrr;ggg;bbb in 38;2;rrr;ggg;bbbm can go from 0 to 255 respectively
#define FONT_COL_CUSTOM_GREEN "\e[38;2;0;200;0m" // where rrr;ggg;bbb in 38;2;rrr;ggg;bbbm can go from 0 to 255 respectively
#define FONT_COL_CUSTOM_BLUE "\e[38;2;0;0;200m" // where rrr;ggg;bbb in 38;2;rrr;ggg;bbbm can go from 0 to 255 respectively
#define BCKGRD_COL_CUSTOM_RED "\e[48;2;200;0;0m" // where rrr;ggg;bbb in 48;2;rrr;ggg;bbbm can go from 0 to 255 respectively
#define BCKGRD_COL_CUSTOM_GREEN "\e[48;2;0;200;0m" // where rrr;ggg;bbb in 48;2;rrr;ggg;bbbm can go from 0 to 255 respectively
#define BCKGRD_COL_CUSTOM_BLUE "\e[48;2;0;0;200m" // where rrr;ggg;bbb in 48;2;rrr;ggg;bbbm can go from 0 to 255 respectively
int main (int argc, char const *argv[]) {
printf(FONT_COL_CUSTOM_RED "This font color is CUSTOM_RED!" ANSI_FONT_COL_RESET "\n");
printf(FONT_COL_CUSTOM_GREEN "This font color is CUSTOM_GREEN!" ANSI_FONT_COL_RESET "\n");
printf(FONT_COL_CUSTOM_BLUE "This font color is CUSTOM_BLUE!" ANSI_FONT_COL_RESET "\n");
printf(BCKGRD_COL_CUSTOM_RED "This background color is CUSTOM_RED!" ANSI_FONT_COL_RESET "\n");
printf(BCKGRD_COL_CUSTOM_GREEN "This background color is CUSTOM_GREEN!" ANSI_FONT_COL_RESET "\n");
printf(BCKGRD_COL_CUSTOM_BLUE "This background color is CUSTOM_BLUE!" ANSI_FONT_COL_RESET "\n");
printf(FONT_COL_CUSTOM_GREEN BCKGRD_COL_CUSTOM_RED "This font color is CUSTOM_GREEN with background CUSTOM_RED!" ANSI_FONT_COL_RESET "\n");
printf( "This font color is NORMAL!\n");
return 0;
}
8条答案
按热度按时间fae0ux8s1#
所有现代的终端仿真器都使用ANSI转义码来显示颜色和其他内容。
不要为库而烦恼,代码真的很简单。
更多信息在这里。
C中的示例:
nkcskrwz2#
处理颜色序列可能会变得混乱,不同的系统可能会使用不同的颜色序列指示器。
我建议您尝试使用ncurses。除了颜色,ncurses还可以使用控制台UI做许多其他整洁的事情。
px9o7tmv3#
您可以为每个功能指定一种颜色以使其更有用。
像明智的,你可以选择不同的颜色代码,使这更通用。
9fkzdhlc4#
您可以输出特殊的颜色控制代码来获得彩色终端输出,这里有一个关于how to print colors的很好的资源。
例如:
编辑:我原来的一个使用提示颜色代码,这是行不通的:(这一个(我测试过)。
uajslkp65#
阅读维基百科:
fhg3lkii6#
如果整个程序使用相同的颜色,可以定义
printf()
函数。cuxqih217#
因为你不能用字符串格式来打印字符,你也可以考虑用这样的方式来添加一个格式
f
与printf
相同将打印
blue bar
将打印
red 97
9gm1akwq8#
扩展@AndrejsCainikovs的答案,下面是一段代码,它适用于24位rgb代码(字体和背景颜色都适用),终端支持这样的代码(Xterm、KDE的Konsole和iTerm,以及所有基于libvte的终端,包括GNOME终端,参见https://en.wikipedia.org/wiki/ANSI_escape_code#Colors):