我想用printf
颜色:我可以假设所有的平台都支持带有颜色的`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
的颜色打印?
不仅如此,而且您错过了实际切换颜色的重要调用'SetConsoleTextAttribute(hConsole,k);'。 – Xymostech 2013-04-11 19:25:46
@FredLarson错误的链接谢谢你注意到我。我解决了。 – 0x90 2013-04-11 19:31:42
您可以假设它会将这些控制字符发送到标准输出。您不能认为这样做会对显示文本的颜色产生任何影响。例如,我通常使用禁用颜色的'xterm'。 – 2013-04-11 20:08:40