# include " rang.hpp "
using namespace std ;
using namespace rang ;
int main ()
{
cout << " Plain old text "
<< style:: bold << " Rang styled text!! "
<< style::reset << endl;
}
rang hängt nur von der C++-Standardbibliothek, dem Systemheader unistd.h
auf Unix und den Systemheadern windows.h
und io.h
auf Windows-basierten Systemen ab. Mit anderen Worten: Sie benötigen keine Abhängigkeiten von Drittanbietern.
rang ist eine einzelne Header-Bibliothek. Platzieren Sie rang.hpp
im Include-Ordner direkt im Quellbaum des Projekts oder an einem Ort, der von Ihrem Projekt aus erreichbar ist.
Wenn Sie den Conan-Paketmanager verwenden, führen Sie alternativ die folgenden Schritte aus:
Fügen Sie einen Verweis auf „rang“ zum Abschnitt „requires“ der Datei conanfile.txt
Ihres Projekts hinzu:
[requires]
rang/3.1.0@rang/stable
Führen Sie den Installationsbefehl von Conan aus:
conan install
Rang verwendet iostream-Objekte – cout
/ clog
/ cerr
um Attribute auf den Ausgabetext anzuwenden. Da Rang darauf abzielt, sowohl Windows als auch Unix-ähnliche Systeme zu unterstützen, kümmert es sich um die betriebssystemspezifischen Details und versucht, eine einheitliche Schnittstelle bereitzustellen. Aufgrund von Inkompatibilitäten zwischen verschiedenen Betriebssystemversionen werden nicht alle Arten von Attributen auf jedem System unterstützt. Daher versucht rang, diejenigen zu überspringen, die möglicherweise Müll erzeugen (anstatt zufällige ANSI-Escape-Codes in Ihre Streams zu übertragen). Die Erkennung von tty erfolgt ebenfalls intern, sodass Sie nicht prüfen müssen, ob der Anwendungsbenutzer die Ausgabe möglicherweise in eine Datei umleitet.
Benötigen Sie Unterstützung für Nicht-ANSI-Terminals? Schauen Sie sich Termdb an, das praktisch alle Terminals und deren Funktionen unterstützt.
Abgesehen vom Festlegen von Textattributen können Sie rang auch über die folgenden Methoden bitten, sein Standardverhalten zu überschreiben:
void rang::setControlMode (rang::control);
wo rang::control
dauert
control::Auto
– Erkennt automatisch, ob das Terminal Farbe unterstützt oder nicht ( Standard )control::Off
– Farben vollständig ausschaltencontrol::Force
– Erzwingt Farben, auch wenn das Terminal sie nicht unterstützt oder die Ausgabe an ein Nicht-Terminal umgeleitet wird void rang::setWinTermMode (rang::winTerm);
wo rang::winTerm
dauert
winTerm::Auto
– Sucht nach neueren Fenstern und wählt Ansi aus, andernfalls wird auf Native zurückgegriffen ( Standard ).winTerm::Native
– Diese Methode wird in allen Windows-Versionen unterstützt, unterstützt jedoch weniger AttributewinTerm::Ansi
– Diese Methode wird in neueren Windows-Versionen unterstützt und unterstützt eine Vielzahl von AttributenUnterstützte Attribute mit ihrer Kompatibilität sind unten aufgeführt:
Textstile :
Code | Linux/Win/Andere | Alter Sieg |
---|---|---|
rang::style::bold | Ja | Ja |
rang::style::dim | Ja | NEIN |
rang::style::italic | Ja | NEIN |
rang::style::underline | Ja | NEIN |
rang::style::blink | NEIN | NEIN |
rang::style::rblink | NEIN | NEIN |
rang::style::reversed | Ja | Ja |
rang::style::conceal | Vielleicht | Ja |
rang::style::crossed | Ja | NEIN |
Textfarbe :
Code | Linux/Win/Andere | Alter Sieg |
---|---|---|
rang::fg::black | Ja | Ja |
rang::fg::red | Ja | Ja |
rang::fg::green | Ja | Ja |
rang::fg::yellow | Ja | Ja |
rang::fg::blue | Ja | Ja |
rang::fg::magenta | Ja | Ja |
rang::fg::cyan | Ja | Ja |
rang::fg::gray | Ja | Ja |
Hintergrundfarbe :
Code | Linux/Win/Andere | Alter Sieg |
---|---|---|
rang::bg::black | Ja | Ja |
rang::bg::red | Ja | Ja |
rang::bg::green | Ja | Ja |
rang::bg::yellow | Ja | Ja |
rang::bg::blue | Ja | Ja |
rang::bg::magenta | Ja | Ja |
rang::bg::cyan | Ja | Ja |
rang::bg::gray | Ja | Ja |
Helle Vordergrundfarbe :
Code | Linux/Win/Andere | Alter Sieg |
---|---|---|
rang::fgB::black | Ja | Ja |
rang::fgB::red | Ja | Ja |
rang::fgB::green | Ja | Ja |
rang::fgB::yellow | Ja | Ja |
rang::fgB::blue | Ja | Ja |
rang::fgB::magenta | Ja | Ja |
rang::fgB::cyan | Ja | Ja |
rang::fgB::gray | Ja | Ja |
Helle Hintergrundfarbe :
Code | Linux/Win/Andere | Alter Sieg |
---|---|---|
rang::bgB::black | Ja | Ja |
rang::bgB::red | Ja | Ja |
rang::bgB::green | Ja | Ja |
rang::bgB::yellow | Ja | Ja |
rang::bgB::blue | Ja | Ja |
rang::bgB::magenta | Ja | Ja |
rang::bgB::cyan | Ja | Ja |
rang::bgB::gray | Ja | Ja |
Stile/Farben zurücksetzen :
Code | Linux/Win/Andere | Alter Sieg |
---|---|---|
rang::style::reset | Ja | Ja |
rang::fg::reset | Ja | Ja |
rang::bg::reset | Ja | Ja |
Überprüfen Sie den Wert Ihrer Umgebungsvariablen TERM
. Öffnen Sie dann hier ein Problem und geben Sie unbedingt den Wert von TERM
zusammen mit Ihrem Terminalnamen an.
cout
/ cerr
/ clog
rdbuf umleiten? Rang stört nicht, wenn Sie versuchen, cout
/ cerr
/ clog
an einen anderen Ort umzuleiten, und überlässt die Entscheidung dem Bibliotheksbenutzer. Stellen Sie sicher, dass Sie dieses Gespräch gelesen haben, und sehen Sie sich den Beispielcode hier an.