gpt4 book ai didi

我可以假设所有平台都支持 `printf` 颜色吗?

转载 作者:行者123 更新时间:2023-12-02 22:07:04 24 4
gpt4 key购买 nike

我想将 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

最佳答案

不是平台的功能,是终端的功能。

如果将 VT525 连接到计算机的串行端口,您将看到所有绚丽的 ANSI 颜色。如果连接 VT100,您将看到大部分是黑色的绿色。如果你连接一个 IBM 2741,你会看到大部分是白色的黑色,或者如果你有这些颜色的胶带,你可能会看到棕色或蓝色或绿色或红色,但不是同时(你需要手动交换胶带)。

如今,许多(但不是全部)在各种窗口系统上运行的终端仿真器都支持 ANSI 颜色选择序列。

在类 Unix 系统上,发现和使用终端功能(颜色和许多其他功能)的推荐方法是使用诸如 ncurses 之类的库。该库将为您的终端或终端仿真器选择正确的转义序列,如果不支持彩色,则退回到单色打印。

关于我可以假设所有平台都支持 `printf` 颜色吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15957095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com