답변:
모든 최신 터미널 에뮬레이터는 ANSI 이스케이프 코드를 사용하여 색상 및 기타 사항을 표시합니다.
라이브러리에 신경 쓰지 마십시오. 코드는 정말 간단합니다.
자세한 정보는 여기에 있습니다 .
C의 예 :
#include <stdio.h>
#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"
int main (int argc, char const *argv[]) {
printf(ANSI_COLOR_RED "This text is RED!" ANSI_COLOR_RESET "\n");
printf(ANSI_COLOR_GREEN "This text is GREEN!" ANSI_COLOR_RESET "\n");
printf(ANSI_COLOR_YELLOW "This text is YELLOW!" ANSI_COLOR_RESET "\n");
printf(ANSI_COLOR_BLUE "This text is BLUE!" ANSI_COLOR_RESET "\n");
printf(ANSI_COLOR_MAGENTA "This text is MAGENTA!" ANSI_COLOR_RESET "\n");
printf(ANSI_COLOR_CYAN "This text is CYAN!" ANSI_COLOR_RESET "\n");
return 0;
}
색상 시퀀스를 다루는 것은 지저분해질 수 있으며 다른 시스템은 다른 색상 시퀀스 표시기를 사용할 수 있습니다.
ncurses를 사용하는 것이 좋습니다 . 색상 외에도 ncurses는 콘솔 UI로 다른 많은 깔끔한 작업을 수행 할 수 있습니다.
특수 색상 제어 코드를 출력하여 컬러 터미널 출력을 얻을 수 있습니다 . 색상을 인쇄하는 방법 에 대한 좋은 리소스는 다음과 같습니다 .
예를 들면 :
printf("\033[22;34mHello, world!\033[0m"); // shows a blue hello world
편집 : 내 원래는 작동하지 않는 프롬프트 색상 코드를 사용했습니다 :( 이것은 (나는 그것을 테스트했습니다).
edition.c: In function ‘int main(int, const char**)’: edition.c:4: error: unknown escape sequence '\]' edition.c:4: error: unknown escape sequence '\]' edition.c edition.c~
컴파일 오류 이상은 없습니다 :(
22
하여이 1
그것을 참조하는 대담 .
모든 기능에 하나의 색상을 할당하여 더 유용하게 만들 수 있습니다.
#define Color_Red "\33[0:31m\\]" // Color Start
#define Color_end "\33[0m\\]" // To flush out prev settings
#define LOG_RED(X) printf("%s %s %s",Color_Red,X,Color_end)
foo()
{
LOG_RED("This is in Red Color");
}
마찬가지로 다른 색상 코드를 선택하여 더 일반적으로 만들 수 있습니다.
#include <stdio.h>
#define BLUE(string) "\x1b[34m" string "\x1b[0m"
#define RED(string) "\x1b[31m" string "\x1b[0m"
int main(void)
{
printf("this is " RED("red") "!\n");
// a somewhat more complex ...
printf("this is " BLUE("%s") "!\n","blue");
return 0;
}
Wikipedia 읽기 :