# include " rang.hpp "
using namespace std ;
using namespace rang ;
int main ()
{
cout << " Plain old text "
<< style:: bold << " Rang styled text!! "
<< style::reset << endl;
}
rang은 C++ 표준 라이브러리, Unix의 unistd.h
시스템 헤더, Windows 기반 시스템의 windows.h
& io.h
시스템 헤더에만 의존합니다. 즉, 타사 종속성이 필요하지 않습니다.
rang은 단일 헤더 전용 라이브러리입니다. include 폴더에 있는 rang.hpp
프로젝트 소스 트리나 프로젝트에서 접근할 수 있는 곳에 직접 넣으세요.
또는 Conan 패키지 관리자를 사용하는 경우 다음 단계를 따르세요.
프로젝트 conanfile.txt
파일의 require 섹션에 rang 에 대한 참조를 추가합니다.
[requires]
rang/3.1.0@rang/stable
conan의 설치 명령을 실행하십시오.
conan install
Rang은 iostream 개체( cout
/ clog
/ cerr
를 사용하여 출력 텍스트에 속성을 적용합니다. Rang은 Windows와 Unix 같은 시스템을 모두 지원하는 것을 목표로 하기 때문에 OS별 세부 사항을 관리하고 통일된 인터페이스를 제공하려고 노력합니다. 서로 다른 OS 버전 간의 비호환성으로 인해 모든 시스템에서 모든 종류의 속성이 지원되는 것은 아니므로 rang은 (스트림에 임의의 ANSI 이스케이프 코드를 푸시하는 대신) 쓰레기를 생성할 수 있는 속성을 건너뛰려고 합니다. tty 감지도 내부적으로 처리되므로 애플리케이션 사용자가 출력을 파일로 리디렉션할 수 있는지 확인할 필요가 없습니다.
Ansi가 아닌 터미널에 대한 지원이 필요합니까? 거의 모든 터미널과 해당 기능을 지원하는 Termdb를 확인하세요.
텍스트 속성을 설정하는 것 외에도 다음 방법을 통해 rang에게 기본 동작을 재정의하도록 요청할 수도 있습니다.
void rang::setControlMode (rang::control);
rang::control
걸리는 곳
control::Auto
- 터미널이 색상을 지원하는지 여부를 자동으로 감지합니다( 기본값 ).control::Off
- 색상을 완전히 끕니다.control::Force
- 터미널이 색상을 지원하지 않거나 출력이 비 터미널로 리디렉션되는 경우에도 색상을 강제 적용합니다. void rang::setWinTermMode (rang::winTerm);
여기서 rang::winTerm
다음을 수행합니다.
winTerm::Auto
- 최신 창을 확인하고 Ansi를 선택합니다. 그렇지 않으면 기본( 기본값 )으로 대체됩니다.winTerm::Native
- 이 방법은 모든 버전의 Windows에서 지원되지만 더 적은 수의 속성을 지원합니다.winTerm::Ansi
- 이 방법은 최신 버전의 Windows에서 지원되며 다양한 속성을 지원합니다.호환성이 있는 지원되는 속성은 다음과 같습니다.
텍스트 스타일 :
암호 | 리눅스/승리/기타 | 올드윈 |
---|---|---|
rang::style::bold | 예 | 예 |
rang::style::dim | 예 | 아니요 |
rang::style::italic | 예 | 아니요 |
rang::style::underline | 예 | 아니요 |
rang::style::blink | 아니요 | 아니요 |
rang::style::rblink | 아니요 | 아니요 |
rang::style::reversed | 예 | 예 |
rang::style::conceal | 아마도 | 예 |
rang::style::crossed | 예 | 아니요 |
텍스트 색상 :
암호 | 리눅스/승리/기타 | 올드윈 |
---|---|---|
rang::fg::black | 예 | 예 |
rang::fg::red | 예 | 예 |
rang::fg::green | 예 | 예 |
rang::fg::yellow | 예 | 예 |
rang::fg::blue | 예 | 예 |
rang::fg::magenta | 예 | 예 |
rang::fg::cyan | 예 | 예 |
rang::fg::gray | 예 | 예 |
배경색상 :
암호 | 리눅스/승리/기타 | 올드윈 |
---|---|---|
rang::bg::black | 예 | 예 |
rang::bg::red | 예 | 예 |
rang::bg::green | 예 | 예 |
rang::bg::yellow | 예 | 예 |
rang::bg::blue | 예 | 예 |
rang::bg::magenta | 예 | 예 |
rang::bg::cyan | 예 | 예 |
rang::bg::gray | 예 | 예 |
밝은 전경색 :
암호 | 리눅스/승리/기타 | 올드윈 |
---|---|---|
rang::fgB::black | 예 | 예 |
rang::fgB::red | 예 | 예 |
rang::fgB::green | 예 | 예 |
rang::fgB::yellow | 예 | 예 |
rang::fgB::blue | 예 | 예 |
rang::fgB::magenta | 예 | 예 |
rang::fgB::cyan | 예 | 예 |
rang::fgB::gray | 예 | 예 |
밝은 배경 색상 :
암호 | 리눅스/승리/기타 | 올드윈 |
---|---|---|
rang::bgB::black | 예 | 예 |
rang::bgB::red | 예 | 예 |
rang::bgB::green | 예 | 예 |
rang::bgB::yellow | 예 | 예 |
rang::bgB::blue | 예 | 예 |
rang::bgB::magenta | 예 | 예 |
rang::bgB::cyan | 예 | 예 |
rang::bgB::gray | 예 | 예 |
스타일/색상 재설정 :
암호 | 리눅스/승리/기타 | 올드윈 |
---|---|---|
rang::style::reset | 예 | 예 |
rang::fg::reset | 예 | 예 |
rang::bg::reset | 예 | 예 |
환경 변수 TERM
의 값을 확인하세요. 그런 다음 여기에서 문제를 열고 터미널 이름과 함께 TERM
값을 언급하세요.
cout
/ cerr
/ clog
rdbuf를 리디렉션하시겠습니까? cout
/ cerr
/ clog
다른 곳으로 리디렉션하려고 해도 Rang은 방해하지 않으며 결정은 라이브러리 사용자에게 맡깁니다. 이 대화를 읽고 여기에서 예제 코드를 확인하세요.