- •1. Введение.
- •2. Общие положения.
- •3. Форматирование ввода-вывода средствами языка с
- •4. Функция printf()
- •6. Оператор printf - вывод целых чисел в восьмиричном и
- •10. Оператор printf - вывод значений типа char
- •11. Оператор printf - вывод чисел с плавающей точкой в
- •12. Оператор printf - вывод чисел с плавающей точкой в
- •13. Оператор printf - вывод текстовых строк
- •15. Оператор printf - вывод значений со знаком
- •16. Оператор printf - форматирование вывода целого значения
- •18. Оператор printf - вывод префикса перед восьмиричными и
- •19 . Оператор printf - форматирование чисел с плавающей точкой
- •20. Оператор printf - форматирование экспоненциального представления
- •21. Оператор printf - вывод с выравниванием слева
- •22. Оператор printf - комбинирование спецификаторов формата
- •23. Оператор printf - перенос символьной строки
- •24. Оператор printf - вывод текстовых строк по near- и far-указателям
- •25. Оператор printf - работа с Esc-символами
- •26. Оператор printf - определение количества выводимых символов
- •27. Оператор printf - использование возвращаемого значения
- •28. Ansi-драйвер
- •29. Использование ansi-драйвера для очистки экрана
- •30. Использование ansi-драйвера для управления цветом на экране
- •31. Использование ansi-драйвера для позиционирования курсора
- •33.Ввод и вывод одного символа
- •35.Буферы
- •36. Чтение одной строки
- •37. Функции ввода-вывода символов
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");