Bazen Linux üzerinde yazdığımız kodları test ederken, terminale log yazdırırken veya sadece terminal üzerinde çalışan bir app yazdığımızda ekrana bazı çıktılar vermek zorunda kalabiliriz. Bu çıktıları verirken genelde 2 renkten oluşan terminal ekranı epey karışık ve anlaması zor hale gelebilir. Bu sorunu çözebilmek için ANSI renk kodlarını kullanabilir, terminal ekranımızı renklendirebilir ve başka değişiklikler yapabiliriz.
Bu renk kodlarını C++ üzerinde şu şekilde deneyebiliriz.
#include <cstdint> #include <iostream> int main(int argc, const char **argv) { std::cout << "Bold- Bckgrnd- Bright- Underline\n"; for (std::uint8_t i = 30; i < 38; i++) { std::cout << "\033[1;" << unsigned(i) << "mtext\033[0m\t"; std::cout << "\033[1;" << unsigned(i + 10) << "m\033[1;37mtext\033[0m\t"; std::cout << "\033[0;" << unsigned(i) << "mtext\033[0m\t"; std::cout << "\033[4;" << unsigned(i) << "mtext\033[0m\n"; } return 0; }
Terminal üzerinde çalıştırdığımızda şu şekilde bir çıktı alırız.
Kodu açıklamak gerekirse,
std::cout << “\033[1;31mtext\033[0m\t”;
\033 -> ESC karekteri,
[1; -> Yazının bold olacağı anlamına gelir.
31 -> Yazının kırmızı rengi alacağını bildirir.
\033[0 -> ESC karekteri ve reset kodu.
Konuyla alakalı bazı düzenlemeleri ve bu düzenlemelerin kodlarını aşağıdaki tablodan görebilirsiniz.
Renk | Ön plan kodu | Arka plan kodu |
Siyah | 30 | 40 |
Kırmızı | 31 | 41 |
Yeşil | 32 | 42 |
Sarı | 33 | 43 |
Mavi | 34 | 44 |
Beyaz | 37 | 47 |
Ayrıca şu kodları da kullanabilirsiniz.
Reset | 0 |
Kalın/ince | 1 |
Alt çizgi | 4 |
Tersine çevirmek | 7 |
Daha detaylı bilgi almak için wikipedia sayfasını inceleyebilirsiniz.