FromNandの日記

自分的備忘録

【C言語】文字列にアンダーラインを入れたり、色を変えたりする方法

printfのフォーマット文字列の部分に「\x1b[A;Bm」を記述すると、そのあとに表示される文字列の属性を変更することができます。

ちなみにAの部分には0か1が入り、0は暗い・1は明るいということらしいです。

Bの部分には何が入るのかイマイチわかりませんが、30~37までは色を変更するらしいです。

 

「printf("\x1b[0m]")」というふうにAを省略することもできます。

上のようにBの部分に0を指定すると全部リセットされるみたいです(多分)

 

ここでお試しプログラムを貼っておきます。

#include<stdio.h>
int main(void) {

    int i;
    printf("ここから0の場合\n");

    for (i = 0; i < 0xff; i++) {

        printf("i = %d, \x1b[0;%dmhelloworld\n", i, i);

    }
    printf("ここから1の場合");

    for (i = 0; i < 0xff; i++) {

        printf("i = %d, \x1b[1;%dmhelloworld\n", i, i);

    }
    return 0;