Я делаю простое приложение, требующее цветного вывода. Как я могу сделать свой вывод цветным, как emacs и bash?
Меня не волнует Windows, поскольку мое приложение предназначено только для систем UNIX.
Все современные эмуляторы терминала используют escape-коды ANSI для отображения цветов и прочего.
Не беспокойтесь о библиотеках, код действительно прост.
Больше информации здесь .
Пример на 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;
}
Работа с цветовыми последовательностями может стать беспорядочной, и разные системы могут использовать разные индикаторы цветовой последовательности.
Я предлагаю вам попробовать использовать ncurses . Помимо цвета, ncurses может делать много других полезных вещей с консольным UI.
источник
Вы можете выводить специальные коды управления цветом, чтобы получить цветной вывод терминала, вот хороший ресурс о том, как печатать цвета .
Например:
РЕДАКТИРОВАТЬ: В моем оригинальном использовались цветовые коды подсказок, которые не работают :( Этот работает (я его тестировал).
источник
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~
Ничего, кроме кучи ошибок компиляции :(22
на,1
чтобы выделить его жирным шрифтом .Вы можете назначить один цвет для каждой функции, чтобы сделать ее более полезной.
Вы также можете выбрать разные цветовые коды и сделать их более общими.
источник
Если вы используете один и тот же цвет для всей программы, вы можете определить
printf()
функцию.источник
Потому что вы не можете напечатать символ с форматированием строки. Вы также можете подумать о добавлении формата с чем-то вроде этого
f
формат как вprintf
напечатает
blue bar
напечатает
red 97
источник
читая Википедию :
источник