-
VT터미널에서 컬러 사용하기프로그래밍/기타 2021. 3. 28. 10:30728x90
디버깅 메시지를 보다보면 텍스트가 너무 많아서 원하는 메시지를 찾아 헤매는 경우가 많은데요. 정말 중요한 메시지에 색을 입히면 조금은 찾기 수월해집니다. VT100 이상 호환되는 터미널은 글씨와 배경에 색을 입힐 수 있습니다.
위의 프로그램의 소스 코드입니다.
#include <stdio.h> #define COLOR_END "\x1b[0m" #define COLOR_BOLD "\x1b[01m" #define COLOR_BLINK "\x1b[05m" #define COLOR_REVERSE "\x1b[07m" #define FG_BLACK "\x1b[30m" #define FG_RED "\x1b[31m" #define FG_GREEN "\x1b[32m" #define FG_YELLOW "\x1b[33m" #define FG_BLUE "\x1b[34m" #define FG_PINK "\x1b[35m" #define FG_SKY "\x1b[36m" #define FG_WHITE "\x1b[37m" #define BG_BLACK "\x1b[40m" #define BG_RED "\x1b[41m" #define BG_GREEN "\x1b[42m" #define BG_YELLOW "\x1b[43m" #define BG_BLUE "\x1b[44m" #define BG_PINK "\x1b[45m" #define BG_SKY "\x1b[46m" #define BG_WHITE "\x1b[47m" #define COLOR_L_RED "\x1b[47;31m" #define COLOR_L_GREEN "\x1b[47;32m" #define COLOR_L_YELLOW "\x1b[47;33m" #define COLOR_L_BLUE "\x1b[47;34m" #define COLOR_L_MAGENTA "\x1b[47;35m" #define COLOR_L_CYAN "\x1b[47;36m" #define COLOR_L_WHITE "\x1b[47;37m" int main() { printf(FG_RED "FG" COLOR_END " END\r\n"); // 1 printf(BG_RED "BG" COLOR_END " END\r\n"); // 2 printf(FG_RED BG_WHITE "FG&BG 1" COLOR_END " END\r\n"); // 3 printf(COLOR_L_RED "FG&BG 2" COLOR_END " END\r\n"); // 4 printf(COLOR_BOLD "BOLD" COLOR_END " END\r\n"); // 5 printf(COLOR_BLINK "BLINK" COLOR_END " END\r\n"); // 6 printf(COLOR_REVERSE "REVERSE" COLOR_END " END\r\n"); // 7 return 0; }
코드 설명
- FG라는 텍스트 전에 글씨 색을 정의해주고, 텍스트가 끝나는 부분에서 색을 원래대로 돌려줍니다.
- BG라는 텍스트 전에 배경 색을 정의해주고 1과 마찬가지로 색을 원래대로 돌려줍니다.
- 이번에는 글씨 색과 배경 색을 함께 정의해주었습니다.
- 3과 같은 효과이지만 색을 정의해주는 정보의 양을 줄였습니다. 네트워크 통신에서는 비용을 조금이나마 절감할 수 있겠지요.
- 글씨 색 뿐 아니라 BOLD 효과도 줄 수 있습니다. 3의 방법과 마찬가지로 색과 함께 사용할 수도 있습니다.
- BLINK 효과인데 제 터미널에서는 지원을 하지 않아 사진에서는 보이지 않습니다.
- 색 반전도 사용할 수 있습니다.
참고 사이트
728x90'프로그래밍 > 기타' 카테고리의 다른 글
SDL2_ttf 사용하기 (0) 2021.03.29