Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс ПЯВУ 2 сем / Лекции 2 сем / Л№33 ФорматировВвод / Лекция № 31. Форматированный Ввод вывод .odt
Скачиваний:
16
Добавлен:
17.04.2015
Размер:
50.53 Кб
Скачать

29. Использование ansi-драйвера для очистки экрана

Одной из наиболее часто используемых операций, применяемых программой в начале своего выполнения, является очистка содержимого экрана. К сожалению, библиотека поддержки языка Си (Си-библиотека) не содержит соответствующей функции. Однако, с помощью ANSI-драйвера, обсуждавшегося в С77, очистку экрана можно выполнить, используя следующую Esc-последовательность в функции prinlf:

Esc[2J

Удобным способом задания символа Esc (Escape) является применение восьмиричного представления (\033), как показано ниже:

printf("\033[2J") ;

[Библиотека поддержки компилятора Borland C++ содержит функцию clrscr, обеспечивающую очистку текстового экрана. - Прим. перев.]

30. Использование ansi-драйвера для управления цветом на экране

Во многих примерах, представленных в этой книге, для вывода информации на экран широко используется функция printf. Хотя функция printf и обеспечивает мощные средства форматирования вывода, тем не менее в ней отсутствуют возможности управления цветом вывода. Однако, с помощью ANSI-драйвера (который обсуждался в С77) управление цветом можно организовать, передавая функции printf в качестве параметров Esc-последовательности, перечисленные в табл. 2.

Таблица 2. Esc-последовательности ANSI-драйвера для управления цветом

Esc-последовательность Цвет

Esc[30m Черный текст

Esc[31m Красный текст

Esc[32m Зеленый текст

Esc[33m Оранжевый текст

Esc[34m Синий текст

Esc[35m Сиреневый текст

Esc[36m Голубой текст

Esc[37m Белый текст

Esc[40m Черный фон

Esc[41m Красный фон

Esc[42m Зеленый фон

Esc[43m Оранжевый фон

Esc[44m Синий фон

Esc[45m Сиреневый фон

Esc[46m Голубой фон

Esc[47m Белый фон

В следующем примере оператор prinlf задает выбор синего цвета для фона:

printf("\033[44m") ;

Аналогично, следующий вызов функции printf устанавливает красный цвет на белом фоне:

printf("\033[47m\033[31m") ;

В предыдущем примере с помощью printf выводятся две Esc-последовательности. Как оказывается, ANSI-драйвер допускает задание цветов с помощью разделителя ";" следующим образом:

printf("\033[47;31m");