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

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

推荐答案

所有现代终端模拟器都使用ANSI转义码来显示 colored颜色 和其他东西

更多信息是here.

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;
}

C++相关问答推荐

保护填充从STM 32 F429 I中的静态存储器

VS代码输入需要多次

了解返回函数指针的函数定义

理解没有返回语句的递归C函数的行为

不同到达时间的轮询实现

在C语言中使用scanf()时我无法理解的警告

有没有更简单的方法从用户那里获取数据类型来计算结果

正在try 将文件/文件夹名从目录 struct 存储到链接列表

C-使用指针返回修改后的整数数组

对于C中给定数组中的每个查询,如何正确编码以输出给定索引范围(1到N)中所有数字的总和?

如何在GET_STRING输入后对少数几个特定字符串进行C判断?

C:如何将此代码转换为与数组一起使用?

C++中PUTS函数的返回值

不带Malloc的链表

从另一个宏函数调用C宏

赋值两侧的后置增量,字符指针

OMP并行嵌套循环

&stdbool.h&q;在嵌入式系统中的使用

为什么这个代码的最后一次迭代不能正常工作?

在C中使用字符串时是否不需要内存分配?