我想使用printf
颜色:
某事like:
#include <stdio.h>
#define KNRM "\x1B[0m"
#define KRED "\x1B[31m"
#define KGRN "\x1B[32m"
#define KYEL "\x1B[33m"
#define KBLU "\x1B[34m"
#define KMAG "\x1B[35m"
#define KCYN "\x1B[36m"
#define KWHT "\x1B[37m"
int main()
{
printf("%sred\n", KRED);
printf("%sgreen\n", KGRN);
printf("%syellow\n", KYEL);
printf("%sblue\n", KBLU);
printf("%smagenta\n", KMAG);
printf("%scyan\n", KCYN);
printf("%swhite\n", KWHT);
printf("%snormal\n", KNRM);
return 0;
}
GCC
进行编译,并且将受到支持
任何类似unix的平台?stdout
答案 0 :(得分:4)
它不是平台的功能,它是终端的功能。
如果将VT525连接到计算机的串行端口,您将看到所有光荣的ANSI颜色。如果您连接VT100,您将看到大部分是黑色的绿色。如果您连接IBM 2741,如果您有这些颜色的磁带,您将看到大部分是白色的黑色,或者可能是棕色或蓝色或绿色或红色,但不是同时(您需要手动交换磁带)。 / p>
目前,在各种窗口系统上运行的许多(但不是全部)终端仿真器都支持ANSI颜色选择序列。
在类Unix系统上,发现和使用终端功能(颜色和许多其他功能)的推荐方法是使用诸如ncurses之类的库。库将为您的终端或终端仿真器选择正确的转义序列,如果不支持颜色,则回退到单色打印。
答案 1 :(得分:1)
不,你真的不能这么认为。不仅对所有平台都不是这样,取决于终端设置,对于任何平台上的所有用户来说甚至可能都不是这样。