
TermColor adalah perpustakaan C ++ hanya header untuk mencetak pesan berwarna ke terminal. Ditulis hanya untuk bersenang -senang dengan bantuan pasukan. TermColor menggunakan pemformatan warna ANSI, sehingga Anda dapat menggunakannya pada setiap sistem yang digunakan terminal tersebut (sebagian besar sistem *nix, termasuk Linux dan Mac OS).
Catatan
Pada Windows, Windows API digunakan sebagai pengganti kode pelarian tetapi beberapa batasan diterapkan (tidak semuanya didukung). Itu sebabnya disarankan untuk memasukkan mode pemrosesan terminal virtual dan mengatur makro TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES untuk menipu termcolor untuk menggunakan kode warna ANSI.
Ini dilisensikan di bawah lisensi BSD (3-klausa). Itu pada dasarnya berarti: Lakukan apa pun yang Anda inginkan selama hak cipta menempel.
Tambahkan termcolor.hpp (ambil dari include/termcolor/termcolor.hpp ) ke proyek dan gunakan manipulator aliran dari termcolor namespace.
Anda juga dapat menggunakan VCPKG untuk menginstal perpustakaan:
$ vcpkg install termcolorAtau jika Anda menggunakan macOS, Anda dapat menggunakan homebrew untuk tujuan itu:
$ brew install termcolorUntuk informasi terkini tentang paket yang ada, lihat gambar berikut:
Sangat mudah digunakan. Idenya dibangun di atas manipulator aliran C ++. Aplikasi khas «Hello World» terlihat seperti ini:
# 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 ;
}Aplikasi di atas mencetak string menggunakan warna yang berbeda. Ada satu peringatan. Anda tidak boleh lupa untuk mengatur ulang warna, jika tidak mereka akan diterapkan pada cetakan lain juga.
std::cout << termcolor::red << " Hello, Colorful World! " << std::endl;
std::cout << " I'm RED too! " << std::endl;Versi yang benar dari kode di atas akan terlihat seperti ini:
std::cout << termcolor::red << " Hello, Colorful World! " << termcolor::reset << std::endl;
std::cout << termcolor::reset << " Here I'm! " << std::endl; Secara default, Termcolor mengabaikan warna apa pun untuk aliran non-dua (misalnya std::stringstream ), jadi cuplikan berikut
std::stringstream ss;
ss << termcolor::red << " unicorn " ;
std::cout << ss.str(); Akan mencetak «unicorn» menggunakan warna default, bukan merah. Untuk mengubah perilaku ini, seseorang dapat menggunakan termcolor::colorize yang menegakkan warna apa pun yang terjadi.
Manipulator dibagi menjadi empat kelompok:
Juga, ada manipulator warna untuk 16 warna, 256 warna dan palet warna yang sebenarnya.
Catatan
Sementara termcolor mendukung warna sejati, itu diperlukan untuk emulator terminal yang Anda gunakan untuk menjalankan perangkat lunak Anda untuk mendukung warna yang sebenarnya juga. Jadi harap pastikan itu didukung sebelum mengajukan masalah.
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 tidak mendukung manipulator ini kecuali untuk underline )
termcolor::boldtermcolor::darktermcolor::italictermcolor::underlinetermcolor::blinktermcolor::reversetermcolor::concealedtermcolor::crossed(Windows API tidak mendukung manipulator ini)
termcolor::colorizetermcolor::nocolorize<windows.h> , namespace global dapat tercemar dengan makro min/max. Jika efek tersebut diinginkan, silakan pertimbangkan untuk menggunakan #define NOMINMAX sebelum #include <termcolor.hpp> .