如何使用C打印红色变量的值

时间:2017-11-11 06:10:53

标签: c printf

我想用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()
{
  char *string = "Test";

  printf("%s", ANSI_COLOR_RED     string     ANSI_COLOR_RESET);

  return 0;
}

编译时,会输出错误:

game.c:18:35: error: expected ‘)’ before ‘string’
printf("%s", ANSI_COLOR_RED     string     ANSI_COLOR_RESET);

如何解决此错误?

1 个答案:

答案 0 :(得分:4)

printf ("\033[31;1m Red dragon \033[0m\n");

这是要做的事。

另一种更好的方法是使用宏来进行ANSI - 方式。

printf ("%s%s%s\n", ANSI_COLOR_RED, string, ANSI_COLOR_RESET);

另一种方法是

printf (ANSI_COLOR_RED "%s\n" ANSI_COLOR_RESET, string);