回答:
最近のすべてのターミナルエミュレータは、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;
}
カラーシーケンスの扱いは面倒になる可能性があり、異なるシステムでは異なるカラーシーケンスインジケーターを使用する場合があります。
ncursesを使用することをお勧めします。ncursesは、カラー以外にも、コンソールUIを使って他の多くのきちんとしたことを行うことができます。
特別な色制御コードを出力して、色付きの端末出力を取得できます。ここに、色を印刷する方法に関する優れたリソースがあります。
例えば:
printf("\033[22;34mHello, world!\033[0m"); // shows a blue hello world
編集:私の最初のものは機能しないプロンプトカラーコードを使用しました:(これは動作します(私はテストしました)。
edition.c: In function ‘int main(int, const char**)’: edition.c:4: error: unknown escape sequence '\]' edition.c:4: error: unknown escape sequence '\]' edition.c edition.c~
コンパイルエラーの束に
22
される1
ように変更してください。
#include <stdio.h>
#define BLUE(string) "\x1b[34m" string "\x1b[0m"
#define RED(string) "\x1b[31m" string "\x1b[0m"
int main(void)
{
printf("this is " RED("red") "!\n");
// a somewhat more complex ...
printf("this is " BLUE("%s") "!\n","blue");
return 0;
}
ウィキペディアを読む: