C言語でターミナルで表示される文字をカラー表示させる
2010年04月02日
C言語でエスケープシーケンスを使って端末に表示される文字・背景をカラー表示させてみる。
\x1b
は ESC
の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 での表示
Mac OSX の iTerm での表示
Ubuntu 9.10 KarmicKoala の Gnome Terminal での表示