
TermColor는 터미널에 컬러 메시지를 인쇄하기위한 헤더 전용 C ++ 라이브러리입니다. 힘의 도움으로 재미를 위해 글을 썼습니다. TermColor는 ANSI 색상 형식을 사용하므로 이러한 터미널 (대부분의 *NIX 시스템)을 사용하는 모든 시스템에서 사용할 수 있습니다 (Linux 및 Mac OS).
메모
Windows에서는 Windows API가 탈출 코드 대신 사용되지만 일부 제한 사항이 적용됩니다 (모든 것이 지원되는 것은 아닙니다). 그렇기 때문에 가상 터미널 처리 모드를 입력하고 TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES 매크로를 ANSI 컬러 코드를 사용하도록 TrickColor를 설정하는 것이 좋습니다.
BSD (3-Clause) 라이센스에 따라 라이센스가 부여됩니다. 그것은 기본적으로 다음을 의미합니다. 저작권이 붙어있는 한 원하는대로하십시오.
termcolor.hpp ( include/termcolor/termcolor.hpp )에서 프로젝트에이를 가져 와서 termcolor 네임 스페이스에서 스트림 조작기를 사용하십시오.
VCPKG를 사용하여 라이브러리를 설치할 수도 있습니다.
$ vcpkg install termcolor또는 MACOS에있는 경우 해당 목적으로 홈브류를 사용할 수 있습니다.
$ brew install termcolor기존 패키지에 대한 최신 정보는 다음 그림을 참조하십시오.
사용하기가 매우 쉽습니다. 이 아이디어는 C ++ 스트림 조작기를 기반으로합니다. 일반적인«Hello World»응용 프로그램은 다음과 같습니다.
# include < iostream >
# include < termcolor/termcolor.hpp >
int main ( int /* argc */ , char ** /* argv */ )
{
std::cout << termcolor::red << " Hello, " ; // 16 colors
std::cout << termcolor::color< 100 > << " Colorful " ; // 256 colors
std::cout << termcolor::color< 211 , 54 , 130 > << " World! " ; // true colors
std::cout << std::endl;
return 0 ;
}위의 응용 프로그램은 다른 색상을 사용하여 문자열을 인쇄합니다. 그래도 한 가지 경고가 있습니다. 당신은 색상을 재설정하는 것을 잊지 않아야합니다. 그렇지 않으면 다른 인쇄물에도 적용됩니다.
std::cout << termcolor::red << " Hello, Colorful World! " << std::endl;
std::cout << " I'm RED too! " << std::endl;위의 코드의 올바른 버전은 다음과 같습니다.
std::cout << termcolor::red << " Hello, Colorful World! " << termcolor::reset << std::endl;
std::cout << termcolor::reset << " Here I'm! " << std::endl; 기본적으로 TermColor는 비 tty 스트림의 색상을 무시합니다 (예 std::stringstream ).
std::stringstream ss;
ss << termcolor::red << " unicorn " ;
std::cout << ss.str(); 빨간색이 아닌 기본 색상을 사용하여«unicorn»을 인쇄합니다. 이 동작을 변경하려면 termcolor::colorize Manipulator를 사용할 수 있습니다.
조작기는 4 개의 그룹으로 나뉩니다.
또한 16 가지 색상, 256 개의 색상 및 진정한 색상 팔레트에 대한 색상 조작기가 있습니다.
메모
termcolor True Color를 지원하지만 True Color를 지원하기 위해 소프트웨어를 실행하는 데 사용하는 터미널 에뮬레이터에는 필요합니다. 따라서 문제를 제출하기 전에 지원을 받으십시오.
termcolor::greytermcolor::redtermcolor::greentermcolor::yellowtermcolor::bluetermcolor::magentatermcolor::cyantermcolor::whitetermcolor::bright_greytermcolor::bright_redtermcolor::bright_greentermcolor::bright_yellowtermcolor::bright_bluetermcolor::bright_magentatermcolor::bright_cyantermcolor::bright_whitetermcolor::color<256_COLOR_CODE>termcolor::color<RED, GREEN, BLUE>termcolor::on_greytermcolor::on_redtermcolor::on_greentermcolor::on_yellowtermcolor::on_bluetermcolor::on_magentatermcolor::on_cyantermcolor::on_whitetermcolor::on_bright_greytermcolor::on_bright_redtermcolor::on_bright_greentermcolor::on_bright_yellowtermcolor::on_bright_bluetermcolor::on_bright_magentatermcolor::on_bright_cyantermcolor::on_bright_whitetermcolor::on_color<256_COLOR_CODE>termcolor::on_color<RED, GREEN, BLUE> (Windows API는 underline 제외하고 이러한 조작기를 지원하지 않습니다)
termcolor::boldtermcolor::darktermcolor::italictermcolor::underlinetermcolor::blinktermcolor::reversetermcolor::concealedtermcolor::crossed(Windows API는 이러한 조작기를 지원하지 않습니다)
termcolor::colorizetermcolor::nocolorize<windows.h> 의 내부 사용으로 인해 글로벌 네임 스페이스는 Min/Max 매크로로 오염 될 수 있습니다. 이러한 효과가 바람직하다면 #include <termcolor.hpp> 전에 #define NOMINMAX 사용하는 것을 고려하십시오.