
TermColorは、色付きのメッセージを端末に印刷するためのヘッダーのみのC ++ライブラリです。フォースの助けを借りて楽しみのためだけに書かれています。 TermColorはANSIカラーフォーマットを使用するため、そのような端子(LinuxやMac OSを含むほとんど *nixシステム)を使用するすべてのシステムで使用できます。
注記
Windowsでは、エスケープコードの代わりにWindows APIが使用されますが、いくつかの制限が適用されます(すべてがサポートされているわけではありません)。そのため、仮想端子処理モードに入り、 TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES Macroを設定して、ANSIカラーコードを使用してTrick TermColorを設定することをお勧めします。
BSD(3節)ライセンスの下でライセンスされています。それは基本的に、著作権が固執する限り、あなたが望むことを何でもすることを意味します。
termcolor.hpp ( include/termcolor/termcolor.hppからglab It)をプロジェクトに追加し、 termcolor Namepaceからストリームマニピュレーターを使用します。
VCPKGを使用してライブラリをインストールすることもできます。
$ vcpkg install termcolorまたは、MacOSを使用している場合は、その目的のためにHomebrewを使用できます。
$ 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 ;
}上記のアプリケーションは、異なる色を使用して文字列を印刷します。ただし、1つの注意事項があります。色をリセットすることを忘れてはなりません。そうしないと、他のプリントにも適用されます。
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真の色をサポートしていますが、ソフトウェアを実行するために使用するターミナルエミュレーターにも真の色をサポートするために必要です。そのため、問題を提出する前にサポートされていることを確認してください。
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>(WindowsAPIは、 underlineを除いてこれらのマニピュレーターをサポートしていません)
termcolor::boldtermcolor::darktermcolor::italictermcolor::underlinetermcolor::blinktermcolor::reversetermcolor::concealedtermcolor::crossed(WindowsAPIはこれらのマニピュレーターをサポートしていません)
termcolor::colorizetermcolor::nocolorize<windows.h>の内部使用により、グローバルネームスペースはMIN/MAXマクロで汚染される可能性があります。そのような効果が望ましい場合は、 #include <termcolor.hpp>の前に#define NOMINMAXを使用することを検討してください。