1. ホーム
  2. c

[解決済み] stdlibとC言語のカラー出力

2022-05-10 12:42:58

質問

私は色付きの出力を必要とする簡単なアプリケーションを作っています。emacsやbashのように出力に色をつけるにはどうしたらいいでしょうか?

私のアプリケーションはUNIXシステムのみなので、Windowsにはこだわらない。

どのように解決するのですか?

最近の端末エミュレータはすべて、色などを表示するためにANSIエスケープコードを使用しています。

ライブラリに悩まされることなく、コードは実にシンプルです。

より詳しい情報は こちら .

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