개요
앞선 포스트에서 Escape Sequence를 이용하여 커서의 위치를 변경하였으며, 변경된 커서를 이용하여 같은 자리에 문자를 겹쳐서 출력해 보았습니다. 이 외에도 Escape Sequence 를 이용하면 출력되는 문자의 색상을 변경할 수도 있습니다.
문자의 색상과 관련된 Escape Sequence 는 다음과 같습니다.
▼ Escape Sequence Table - 그래픽 모드 설정 부분
출력문자 색상 변경하기
위 테이블의 내용을 바탕으로 출력문자의 색상을 변경하여 출력해보도록 하겠습니다.
▼ color.c
#include <stdio.h>
int main(void) {
// 글자색 : 빨간색
printf("\x1b[31mHello\n");
// 설정 초기화
printf("\x1b[0mHello\n");
return 0;
}
실행결과는 다음과 같습니다. 콘솔화면에 출력되는 글자의 색상 속성을 빨간색으로 변경한 후 Hello
라는 문장을 출력하였습니다. 이후, 다시 설정을 초기화 하여 출력하였습니다.
▼ 문자 색상 변경 예시
이번에는 이와 같이 화면에 출력되는 글자의 색상을 쉽게 사용할 수 있도록 define
문으로 치환하여, 크리스마스트리를 화면에 그려보도록 하겠습니다.
▼ tree.c
// 사용하기 쉽도록 define으로 치환
#define ANSI_COLOR_RED "\x1b[31m"
#define ANSI_COLOR_GREEN "\x1b[32m"
#define ANSI_COLOR_YELLOW "\x1b[33m"
#define ANSI_COLOR_BLUE "\x1b[34m"
#define ANSI_COLOR_MAGENTA "\x1b[35m"
#define ANSI_COLOR_CYAN "\x1b[36m"
#define ANSI_COLOR_RESET "\x1b[0m"
#include <stdio.h>
int main(void) {
printf(ANSI_COLOR_YELLOW" *\n"ANSI_COLOR_RESET);
printf(ANSI_COLOR_GREEN" * *\n");
printf(ANSI_COLOR_RED" * * *\n");
printf(ANSI_COLOR_GREEN"* * * *\n"ANSI_COLOR_RESET);
printf(" ### \n");
printf(" ### \n");
printf(" ### \n");
}
▼ 트리 그리기 예시
화면에 출력되는 문자의 색상은 주로, 화면에 출력되는 메시지를 중요도 별로 색상으로 구별하여 표시할 때 사용하고 있습니다.
참고
'프로그래밍 언어 > C' 카테고리의 다른 글
[C] realpath (0) | 2021.05.28 |
---|---|
엔디언 (Endian) - 64 비트 자료형 처리 (0) | 2019.06.01 |
비트단위 연산과 비트 필드 (0) | 2019.04.01 |
콘솔 다루기 (Escape Sequence) @ C (1/2) (0) | 2018.11.23 |