Saya membuat aplikasi sederhana yang membutuhkan keluaran berwarna. Bagaimana saya bisa membuat output saya berwarna seperti emacs dan bash lakukan?
Saya tidak peduli dengan Windows, karena aplikasi saya hanya untuk sistem UNIX.
Semua emulator terminal modern menggunakan kode pelarian ANSI untuk menunjukkan warna dan hal lainnya.
Jangan repot-repot dengan perpustakaan, kodenya sangat sederhana.
Info lebih lanjut ada di sini .
Contoh dalam C:
#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;
}
Berurusan dengan urutan warna dapat menjadi berantakan dan sistem yang berbeda mungkin menggunakan Indikator Urutan Warna yang berbeda.
Saya sarankan Anda mencoba menggunakan ncurses . Selain warna, ncurses dapat melakukan banyak hal lain dengan UI konsol.
sumber
Anda dapat menampilkan kode kontrol warna khusus untuk mendapatkan keluaran terminal berwarna, berikut adalah sumber yang bagus tentang cara mencetak warna .
Sebagai contoh:
EDIT: Asli saya menggunakan kode warna prompt, yang tidak berfungsi :( Yang ini tidak (saya mengujinya).
sumber
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~
Tidak lebih dari banyak kesalahan kompilasi :(22
dengan1
melihatnya dalam huruf tebal .Anda dapat menetapkan satu warna untuk setiap fungsi agar lebih bermanfaat.
Seperti bijaksana Anda dapat memilih kode warna yang berbeda dan membuatnya lebih generik.
sumber
Jika Anda menggunakan warna yang sama untuk seluruh program, Anda dapat menentukan
printf()
fungsi.sumber
Karena Anda tidak dapat mencetak karakter dengan pemformatan string. Anda juga dapat memikirkan untuk menambahkan format dengan sesuatu seperti ini
f
format seperti dalamprintf
akan dicetak
blue bar
akan dicetak
red 97
sumber
membaca Wikipedia :
sumber