実現したいこと
エスケープシーケンスを使用して、A, B, Cそれぞれに文字カラーをつけたい。
A Red
B Blue
C Yellow
使用環境
MacOS Big Sur
terminal バージョン2.11
gcc -v Homebrew GCC 11.1.0_1
###困っていること
エスケープシーケンスを使用して、A, B, Cそれぞれに文字カラーをつけたいのですが、それぞれの文字に対してカラー指定する方法が分かりません。
下記のコードでは、文字を指定せずにA,B,C全ての文字が赤になるように出力しています。
C
1 2#include <stdio.h> 3#include <stdlib.h> 4#include <time.h> 5int main(void) 6 { 7 srand((unsigned int)time(NULL)); 8 9 char *chars[] = {"A", "B", "C"}; 10 11 for(int i=0; i<10; i++) 12 { 13 printf("\e[31m%c", chars[ (rand()%3) ] ); 14 printf("\n"); 15 } 16 return 0; 17 } 18
使用しているterminalはエスケープシーケンスに対応しているのですか?
こんばんは
対応しています。
先の以下のご質問からの流れだと思いますが、
[C エスケープシーケンスのファイル出力] https://teratail.com/questions/348718
エスケープシーケンスは各文字に色を付けるというよりは「このエスケープシーケンスをターミナル上に出力したら、それ以降はその設定(色)で出力する」と言うようなものなのですが、その辺りのご認識は合っているでしょうか。
はい、それについては解決しています。
回答3件
あなたの回答
tips
プレビュー