C言語でターミナルで表示される文字をカラー表示させる

C言語でエスケープシーケンスを使って端末に表示される文字・背景をカラー表示させてみる。

\x1bESC の16進表記

背景色 前景色
\x1b[40m \x1b[30m
\x1b[41m \x1b[31m
\x1b[42m \x1b[32m
黄色 \x1b[43m 黄色 \x1b[33m
\x1b[44m \x1b[34m
マゼンタ \x1b[45m マゼンタ \x1b[35m
シアン \x1b[46m シアン \x1b[36m
灰色 \x1b[47m \x1b[37m
デフォルトに戻す \x1b[49m デフォルトに戻す \x1b[39m

その他の装飾
下線 \x1b[4m
高輝度(太字化) \x1b[1m
反転(背景色と前景色の入れ替え) \x1b[7m
デフォルトに戻す \x1b[0m

サンプルコード

#include <stdio.h>

int main(void)
{
    /* 背景色の指定 */
    printf("\x1b[40m");     /* 背景色を黒に */
    printf("背景が黒\n");
    printf("\x1b[41m");     /* 背景色を赤に */
    printf("背景が赤\n");
    printf("\x1b[42m");     /* 背景色を緑に */
    printf("背景が緑\n");
    printf("\x1b[43m");     /* 背景色を黄色に */
    printf("背景が黄色\n");
    printf("\x1b[44m");     /* 背景色を青に */
    printf("背景が青\n");
    printf("\x1b[45m");     /* 背景色をマゼンタに */
    printf("背景がマゼンタ\n");
    printf("\x1b[46m");     /* 背景色をシアンに */
    printf("背景がシアン\n");
    printf("\x1b[47m");     /* 背景色を灰色に */
    printf("背景が灰色\n");
    printf("\x1b[49m");     /* 背景色をデフォルトに戻す */
    printf("背景色がデフォルト\n");

    printf("\n");

    /* 前景色の指定 */
    printf("\x1b[30m");     /* 前景色を黒に */
    printf("前景色が黒\n");
    printf("\x1b[31m");     /* 前景色を赤に */
    printf("前景色が赤\n");
    printf("\x1b[32m");     /* 前景色を緑に */
    printf("前景色が緑\n");
    printf("\x1b[33m");     /* 前景色を黄色に */
    printf("前景色が黄色\n");
    printf("\x1b[34m");     /* 前景色を青に */
    printf("前景色が青\n");
    printf("\x1b[35m");     /* 前景色をマゼンタに */
    printf("前景色がマゼンタ\n");
    printf("\x1b[36m");     /* 前景色をシアンに */
    printf("前景色がシアン\n");
    printf("\x1b[37m");     /* 前景色を白に */
    printf("前景色が白\n");
    printf("\x1b[39m");     /* 前景色をデフォルトに戻す */
    printf("前景色がデフォルト\n");

    printf("\n");

    printf("\x1b[4m");      /* 下線を付ける */
    printf("下線を付ける\n");
    printf("\x1b[1m");      /* 高輝度 */
    printf("高輝度\n");
    printf("\x1b[7m");      /* 反転(背景色と前景色の入れ替え) */
    printf("反転(背景色と前景色の入れ替え)\n");
    printf("\x1b[0m");      /* デフォルトに戻す */
    printf("デフォルトに戻す\n");

    return 0;
}

上記のコードのスクリーンショット

Mac OSX 付属の Terminal での表示

C言語 Mac OSX Terminal カラー表示 Screenshot

Mac OSX の iTerm での表示

C言語 Mac OSX iTerm カラー表示 Screenshot

Ubuntu 9.10 KarmicKoala の Gnome Terminal での表示

C言語 Ubuntu 9.10 KarmicKoala Gnome Terminal カラー表示 Screenshot

«
»