Yanıtlar:
Tüm modern terminal emülatörleri, renkleri ve diğer şeyleri göstermek için ANSI kaçış kodlarını kullanır.
Kütüphanelerle uğraşmayın, kod gerçekten basit.
Daha fazla bilgi burada .
C'deki örnek:
#include <stdio.h>
#define ANSI_COLOR_RED "\x1b[31m"
#define ANSI_COLOR_GREEN "\x1b[32m"
#define ANSI_COLOR_YELLOW "\x1b[33m"
#define ANSI_COLOR_BLUE "\x1b[34m"
#define ANSI_COLOR_MAGENTA "\x1b[35m"
#define ANSI_COLOR_CYAN "\x1b[36m"
#define ANSI_COLOR_RESET "\x1b[0m"
int main (int argc, char const *argv[]) {
printf(ANSI_COLOR_RED "This text is RED!" ANSI_COLOR_RESET "\n");
printf(ANSI_COLOR_GREEN "This text is GREEN!" ANSI_COLOR_RESET "\n");
printf(ANSI_COLOR_YELLOW "This text is YELLOW!" ANSI_COLOR_RESET "\n");
printf(ANSI_COLOR_BLUE "This text is BLUE!" ANSI_COLOR_RESET "\n");
printf(ANSI_COLOR_MAGENTA "This text is MAGENTA!" ANSI_COLOR_RESET "\n");
printf(ANSI_COLOR_CYAN "This text is CYAN!" ANSI_COLOR_RESET "\n");
return 0;
}
Renk dizileriyle uğraşmak karışık olabilir ve farklı sistemler farklı Renk Dizisi Göstergeleri kullanabilir.
Ncurses kullanmayı denemenizi öneririm . Renk dışında ncurses, konsol kullanıcı arayüzü ile başka pek çok şey yapabilir.
Renkli terminal çıktıları elde etmek için özel renk kontrol kodlarının çıktısını alabilirsiniz, işte renklerin nasıl yazdırılacağıyla ilgili iyi bir kaynak .
Örneğin:
printf("\033[22;34mHello, world!\033[0m"); // shows a blue hello world
DÜZENLEME: Orijinal olanım çalışmayan komut istemi renk kodlarını kullandı :( Bu çalışıyor (test ettim).
edition.c: In function ‘int main(int, const char**)’: edition.c:4: error: unknown escape sequence '\]' edition.c:4: error: unknown escape sequence '\]' edition.c edition.c~
Bir grup derleme hatasından başka bir şey yok :(
22
tarafından 1
da görmek için cesur .
Her işlevselliği daha kullanışlı hale getirmek için bir renk atayabilirsiniz.
#define Color_Red "\33[0:31m\\]" // Color Start
#define Color_end "\33[0m\\]" // To flush out prev settings
#define LOG_RED(X) printf("%s %s %s",Color_Red,X,Color_end)
foo()
{
LOG_RED("This is in Red Color");
}
Bilge gibi, farklı renk kodları seçebilir ve bunu daha genel hale getirebilirsiniz.
#include <stdio.h>
#define BLUE(string) "\x1b[34m" string "\x1b[0m"
#define RED(string) "\x1b[31m" string "\x1b[0m"
int main(void)
{
printf("this is " RED("red") "!\n");
// a somewhat more complex ...
printf("this is " BLUE("%s") "!\n","blue");
return 0;
}
Wikipedia okunuyor :