我正在做一个简单的应用程序,需要彩色输出。如何使输出像 emacs 和 bash 那样着色?
我不关心 Windows,因为我的应用程序只适用于 UNIX 系统。
您可以输出特殊的颜色控制代码,以获得彩色终端输出,这里有一个很好的资源对 如何打印颜色。
例如:
printf("\033[22;34mHello, world!\033[0m"); // shows a blue hello world
编辑: 我原来的一个使用提示颜色代码,这是不工作的: (这一个(我测试它)。
处理颜色序列可能会变得混乱,不同的系统可能会使用不同的颜色序列指示器。
我建议你试试使用 诅咒。除了颜色,ncurses 还可以用控制台界面做很多其他整洁的事情。
您可以为每个功能分配一种颜色,以使其更加有用。
#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"); }
像明智的,你可以选择不同的颜色代码,使这更通用。
所有现代终端模拟器使用 ANSI 转义码来显示颜色和其他东西。 不要为库操心,代码真的很简单。
更多信息是 给你。
例如 C:
#include <stdio.h> #define ANSI_COLOR_RED "\x1b[31m" #define ANSI_COLOR_GREEN "\x1b[32m" #define ANSI_COLOR_YELLOW "\x1b[33m" #define ANSI_COLOR_BLUE "\x1b[34m" #define ANSI_COLOR_MAGENTA "\x1b[35m" #define ANSI_COLOR_CYAN "\x1b[36m" #define ANSI_COLOR_RESET "\x1b[0m" int main (int argc, char const *argv[]) { printf(ANSI_COLOR_RED "This text is RED!" ANSI_COLOR_RESET "\n"); printf(ANSI_COLOR_GREEN "This text is GREEN!" ANSI_COLOR_RESET "\n"); printf(ANSI_COLOR_YELLOW "This text is YELLOW!" ANSI_COLOR_RESET "\n"); printf(ANSI_COLOR_BLUE "This text is BLUE!" ANSI_COLOR_RESET "\n"); printf(ANSI_COLOR_MAGENTA "This text is MAGENTA!" ANSI_COLOR_RESET "\n"); printf(ANSI_COLOR_CYAN "This text is CYAN!" ANSI_COLOR_RESET "\n"); return 0; }
因为不能使用字符串格式打印字符。您还可以考虑使用类似这样的东西添加格式
#define PRINTC(c,f,s) printf ("\033[%dm" f "\033[0m", 30 + c, s)
f的格式与 printf相同
f
printf
PRINTC (4, "%s\n", "bar")
将打印 blue bar
blue bar
PRINTC (1, "%d", 'a')
将打印 red 97
red 97
如果整个程序使用相同的颜色,则可以定义 printf()函数。
printf()
#include<stdio.h> #define ah_red "\e[31m" #define printf(X) printf(ah_red "%s",X); #int main() { printf("Bangladesh"); printf("\n"); return 0; }
#include <stdio.h> #define BLUE(string) "\x1b[34m" string "\x1b[0m" #define RED(string) "\x1b[31m" string "\x1b[0m" int main(void) { printf("this is " RED("red") "!\n"); // a somewhat more complex ... printf("this is " BLUE("%s") "!\n","blue"); return 0; }
阅读 维基百科: