C中的stdlib和彩色输出

我正在制作一个需要彩色输出的简单应用程序。我如何使输出的颜色像emacs和bash一样?

我不在乎Windows,因为我的应用程序仅适用于UNIX系统。


梦里花落0921
浏览 455回答 3
3回答

慕哥9229398

所有现代的终端仿真器都使用ANSI转义码来显示颜色和其他内容。不用理会库,代码非常简单。更多信息在这里。在C中的示例:#include <stdio.h>#define ANSI_COLOR_RED&nbsp; &nbsp; &nbsp;"\x1b[31m"#define ANSI_COLOR_GREEN&nbsp; &nbsp;"\x1b[32m"#define ANSI_COLOR_YELLOW&nbsp; "\x1b[33m"#define ANSI_COLOR_BLUE&nbsp; &nbsp; "\x1b[34m"#define ANSI_COLOR_MAGENTA "\x1b[35m"#define ANSI_COLOR_CYAN&nbsp; &nbsp; "\x1b[36m"#define ANSI_COLOR_RESET&nbsp; &nbsp;"\x1b[0m"int main (int argc, char const *argv[]) {&nbsp; printf(ANSI_COLOR_RED&nbsp; &nbsp; &nbsp;"This text is RED!"&nbsp; &nbsp; &nbsp;ANSI_COLOR_RESET "\n");&nbsp; printf(ANSI_COLOR_GREEN&nbsp; &nbsp;"This text is GREEN!"&nbsp; &nbsp;ANSI_COLOR_RESET "\n");&nbsp; printf(ANSI_COLOR_YELLOW&nbsp; "This text is YELLOW!"&nbsp; ANSI_COLOR_RESET "\n");&nbsp; printf(ANSI_COLOR_BLUE&nbsp; &nbsp; "This text is BLUE!"&nbsp; &nbsp; ANSI_COLOR_RESET "\n");&nbsp; printf(ANSI_COLOR_MAGENTA "This text is MAGENTA!" ANSI_COLOR_RESET "\n");&nbsp; printf(ANSI_COLOR_CYAN&nbsp; &nbsp; "This text is CYAN!"&nbsp; &nbsp; ANSI_COLOR_RESET "\n");&nbsp; return 0;}

守候你守候我

处理颜色序列可能会变得混乱,并且不同的系统可能会使用不同的颜色序列指示器。我建议您尝试使用ncurses。除了颜色之外,ncurses还可以通过控制台UI进行许多其他整洁的事情。
打开App,查看更多内容
随时随地看视频慕课网APP