стандартный и цветной вывод в C

Если у вас есть обычный указатель (A*), деструктор не будет вызван (и память для экземпляра A не будет освобождена), если вы не сделаете delete явно в деструкторе B. Если вы хотите автоматическое уничтожение, посмотрите на интеллектуальные указатели, такие как auto_ptr.

119
задан mdml 16 June 2014 в 18:38
поделиться

4 ответа

Все современные эмуляторы терминала используют 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;
}
277
ответ дан 24 November 2019 в 01:29
поделиться

Вы можете выводить специальные коды управления цветом, чтобы получить цветной вывод терминала, вот хороший ресурс о том, как печатать цвета.

Например:

printf("\033[22;34mHello, world!\033[0m");  // shows a blue hello world

EDIT: Мой первоначальный вариант использовал оперативные цветовые коды, которые не работают :( Этот вариант работает (я его тестировал).

9
ответ дан 24 November 2019 в 01:29
поделиться

Вы можете назначить один цвет для каждой функции, чтобы сделать ее более полезной.

#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");
}

Вы также можете выбрать разные цветовые коды и сделать их более общими.

8
ответ дан 24 November 2019 в 01:29
поделиться

Работа с цветовыми последовательностями может оказаться запутанной, и разные системы могут использовать разные индикаторы цветовых последовательностей.

Я бы предложил вам попробовать использовать ncurses. Кроме цвета, ncurses может делать много других интересных вещей с консольным пользовательским интерфейсом.

15
ответ дан 24 November 2019 в 01:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: