Автор работы: Пользователь скрыл имя, 26 Сентября 2012 в 18:23, лекция
Функции ввода/вывода с консольного терминала
Функции ввода/вывода для консоли используют специфические особенности IBM совместимого компьютера, такие как наличие специального видеоадаптера, и не являются переносимыми на другие типы компьютеров. Прототипы функций содержатся в файле conio.h. Консольные функции позволяют читать и записывать строки (cgets и cputs), форматированные данные (cscanf и cprintf) и отдельные символы. Функция kbhit определяет, было ли нажатие клавиши и позволяет определить наличие символов для ввода с клавиатуры до попытки чтения.
Цвета текста
Цвет символа,
занимающего ячейку, определяется как
foreground; цвет фона ячейки определяется
как background. Цветные мониторы с цветным
видеоадаптером могут показывать до 16
цветов; монохромные мониторы заменяют
цвета различными визуальными атрибутами
(высокая интенсивность, подчеркивание,
инверсное изображение и т. д. ).
В файле CONIO.H определены символические
имена для различных цветов. Если вы используете
символические константы, вы должны включить
в текст вашей программы строку #include conio.h
.
Следующая таблица представляет список
этих символических констант и соответствующих
им числовых значений. Запомните, что только
первые восемь цветов доступны для выбора
фона (background), в то время как все 16 доступны
для выбора цвета символов (foreground).
BLACK 0 фона и символа ЧЕРНЫЙ
BLUE 1 фона и символа СИНИЙ
GREEN 2 фона и символа ЗЕЛЕНЫЙ
CYAN 3 фона и символа ГОЛУБОЙ
RED 4 фона и символа КРАСНЫЙ
MAGENTA 5 фона и символа МАЛИНОВЫЙ
BROWN 6 фона и символа КОРИЧНЕВЫЙ
LIGHTGRAY 7 фона и символа СВЕТЛОСЕРЫЙ
DARKGRAY 8 символа ТЕМНОСЕРЫЙ
LIGHTBLUE 9 символа СВЕТЛОСИНИЙ
LIGHTGREEN 10 символа СВЕТЛОЗЕЛЕНЫЙ
LIGHTCYAN 11 символа СВЕТЛОГОЛУБОЙ
LIGHTRED 12 символа СВЕТЛОКРАСНЫЙ
LIGHMAGENTA 13 символа СВЕТЛОМАЛИНОВЫЙ
YELLOW 14 символа ЖЕЛТЫЙ
WHITE 15 символа БЕЛЫЙ
BLINK 128 символа МЕРЦАЮЩИЙ
Вы можете добавить символическую константу
BLINK (числовое значение 128) для аргумента
цвета символа, если вы хотите чтобы символ
мерцал.
Высокоэфективный вывод: переменная directvideo
Консольный пакет ввода/вывода Турбо Си
включает переменную, называемую directvideo.
Эта переменная направляет ваш программный
вывод прямо в видеопамять (directvideo = 1) или
переключает его на использование BIOS -
базовой системы ввода/вывода (directvideo =
0).
Предопределенное значение directvideo = 1 (консольный
вывод направляется прямо в видеопамять).
В общем случае использование непосредственного
вывода в видеопамять дает высокую эффективность
(быстрый вывод), но для этого требуется
100% совместимость с IBM PC вашего компьютера:
исполнение адаптера дисплея должно быть
идентично IBM. Установка directvideo = 0 предназначена
для любой машины BIOS совместимой с IBM, но
текст будет выводиться на консоль медленее.
Задания
1. Написать программу, в которой выполняются
следующие действия:
создается текстовое- окно размером 15х15 в центре экрана;
изменяется цвет фона для окна;-
- изменяется цвет символов;
появляются два символа: первый в позиции
(1,1),- второй в позиции (2,2).
по нажатию клавиши оказавшийся верхним
символ- перепрыгивает через нижний по диагонали
в позицию (3,3), (4,4) … При достижении края
экрана очередной символ снова появляется
в позиции (1,1).
программа- прекращает работу по нажатию клавиши
ESC .
2. Написать программу, в которой выполняются
следующие действия:
создается текстовое окно в центре- экрана;
изменяется цвет фона для окна;-
появляется меню из нескольких- пунктов (задавать при помощи массива,
чтобы была возможность изменения количества
пунктов), в котором при помощи textbackground
подсвечен первый пункт;
по нажатию клавиш вверх, вниз подсветка
перемещается в- соответствующем направлении;
по нажатию клавиши Enter запускается функция,- соответствующая подсвеченному
пункту меню (пустышка, очищающая экран,
выдающая сообщение и завершающаяся при
нажатии клавиши ESC );
выход из программы- либо по нажатию клавиши ESC, либо
предусмотренным для этого пунктом меню.