auの日記

プログラミング初心者の日記。(auはハンドルネームです)

printfで出力される文字や背景に色を付ける

auです。
デザイン系の授業のことを勉強していて、C言語でも色を付けることができるのではないかと調べてみました。
エスケープシーケンスを使うことで色の変更や、文字の強調などができます。

printf("\x1b[41m<RED>Hello\x1b[m\n"); // x1bは16進数のためx33と8進数表記でも可

これで赤い背景色で表記されます。
"41m"の番号を変えることで背景色を変更したり、別のことをすることができます。
改行(\n)の前に"[m"を置くことを忘れないでください。

背景と文字の色を変える

#include <stdio.h>

int main(void) {
    // 背景の色を変える
    printf("\x1b[41m<RED>Hello\x1b[m\n");
    printf("\x1b[42m<Green>Hello\x1b[m\n");
    printf("\x1b[43m<Yellow>Hello\x1b[m\n");
    // 文字の色を変える
    printf("\x1b[34mHello\033[m\n");
    printf("\x1b[35mHello\033[m\n");
    printf("\x1b[36mHello\033[m\n");
    return 0;
}
// 実行結果(画像)

f:id:program-shoshinsya:20180731224305p:plain