
TermColor ist eine C ++-C ++-Bibliothek nur für Header, um farbige Nachrichten an das Terminal zu drucken. Nur zum Spaß mit Hilfe der Kraft geschrieben. TermColor verwendet die ANSI -Farbformatierung, sodass Sie es für jedes System verwenden können, das solche Terminals verwendet (die meisten *Nix -Systeme, einschließlich Linux und Mac OS).
Notiz
Unter Windows wird Windows -API anstelle von Escape -Codes verwendet, aber einige Einschränkungen werden angewendet (nicht alles wird unterstützt). Aus diesem Grund wird empfohlen, den virtuellen Terminalverarbeitungsmodus einzugeben und TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES -Makro zu setzen, um TermColor zu wenden, um ANSI -Farbcodes zu verwenden.
Es ist unter der BSD-Lizenz (3-Klausel) lizenziert. Das bedeutet im Grunde: Mach alles, was du willst, solange das Urheberrecht herum bleibt.
Fügen Sie termcolor.hpp hinzu (schnappen Sie sich es von include/termcolor/termcolor.hpp ) zum Projekt und verwenden Sie Stream -Manipulatoren aus dem termcolor -Namespace.
Sie können auch VCPKG verwenden, um die Bibliothek zu installieren:
$ vcpkg install termcolorOder wenn Sie auf MacOS sind, können Sie für diesen Zweck Homebrew verwenden:
$ brew install termcolorWeitere Informationen zu vorhandenen Paketen finden Sie im folgenden Bild:
Es ist sehr einfach zu bedienen. Die Idee basiert auf C ++ Stream -Manipulatoren. Typische «Hallo Welt» Die Anwendung sieht so aus:
# 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 ;
}Die obige Anwendung druckt eine Zeichenfolge mit verschiedenen Farben. Es gibt jedoch eine Einschränkung. Sie dürfen nicht vergessen, Farben zurückzusetzen, sonst werden sie auch auf andere Drucke angewendet.
std::cout << termcolor::red << " Hello, Colorful World! " << std::endl;
std::cout << " I'm RED too! " << std::endl;Die korrekte Version des obigen Codes sollte so aussehen:
std::cout << termcolor::red << " Hello, Colorful World! " << termcolor::reset << std::endl;
std::cout << termcolor::reset << " Here I'm! " << std::endl; Standardmäßig ignoriert TermColor alle Farben für nicht-ty-Streams (z. B. std::stringstream ), also das folgende Snippet
std::stringstream ss;
ss << termcolor::red << " unicorn " ;
std::cout << ss.str(); druckt «Unicorn» mit Standardfarbe, nicht rot. Um dieses Verhalten zu ändern, kann man termcolor::colorize Manipulator verwenden, die Farben durchsetzen, egal was passiert.
Die Manipulatoren sind in vier Gruppen unterteilt:
Außerdem gibt es Farbmanipulatoren für 16 Farben, 256 Farben und wahre Farbenpaletten.
Notiz
Während termcolor echte Farbe unterstützt, ist es für den Terminal -Emulator erforderlich, mit dem Sie Ihre Software ausführen, um auch echte Farbe zu unterstützen. Stellen Sie also sicher, dass es unterstützt wird, bevor es ein Problem eingereicht hat.
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 unterstützt diese Manipulatoren nicht, außer bei underline )
termcolor::boldtermcolor::darktermcolor::italictermcolor::underlinetermcolor::blinktermcolor::reversetermcolor::concealedtermcolor::crossed(Windows -API unterstützt diese Manipulatoren nicht)
termcolor::colorizetermcolor::nocolorize<windows.h> mit Min/Max -Makros verschmutzt werden. Wenn ein solcher Effekt wünschenswert ist, sollten Sie #define NOMINMAX vor #include <termcolor.hpp> verwenden.