Лекции. Основные понятия и определения
Скачать 1.94 Mb.
|
16.1. Ввод/вывод и манипулированиеВ отличие от аналогичных функций передачи данных потоком все описанные ниже функции работают в пределах активного окна. Вводint cscanf(...); Аналогично функции scanf. int getch( ); Чтение символа с клавиатуры без отображения на экран. int getche( ); То же с отображением с отображением символа на экране. char* cgets(char*); Аналогично функции gets. Выводint cprintf(...); Аналогично функции printf. int putch(int); Аналогично функции putchar. int cputs(char*); Аналогично функции puts. Манипулирование цветом и курсоромvoid clrscr( ); Очистить текущее окно и установить курсор в его левый верхний угол(координаты 1, 1). void gotoxy(int x, int y); Установить курсор в окне в точку с координатами (x,y). Если обращение к ней некорректно, то оно игнорируется. Пример. gotoxy(50, 15); Если правый нижний угол окна расположен в ячейке с координатами (35, 25), то действие не выполняется. int gettext( int left, int top, int right, int bottom, void *mem); Запомнить содержимое окна с координатами углов(left, top, right, bottom) в области памяти по адресу mem. int puttext (int left, int top, int right, int bottom, void *mem); Восстановить окно. int movetext(int left, int top, int right, int bottom, int new_left, int new_top); Скопировать область экрана в новое место. Возвращаемое значение всех трех функций: 1 – в случае успеха, 0 – при неудаче. Функции gettext, puttext и movetext работают в абсолютных координатах экрана. Hеобходимый объем памяти для хранения содержимого окна: 2*h*w байтов, где h - ширина окна в позициях, w - высота его в строках. Замечание. Все функции работают только с консолью(экраном). Их называют функциями консольного ввода-вывода. 16.2. Управление окномvoid window(int left, int top, int right, int bottom); Описывает окно с абсолютными координатами. При некорректных аргументах выполнение игнорируется. Никаких внешних действий на экране не происходит!!! 16.3. Управление атрибутом (цветами символа и фона в окне)Замечание. Все нижеперечисленные функции влияют только на выполнение функций консольного ввода-вывода. Например, функция printf выводит информацию только с позиции, где находится курсор, безотносительно назначенного окна. void textcolor(int color); Цвет символа кодируется целыми значениями из диапазона [0-15]. Пример. textcolor(RED); // Красный цвет void textbackground(int color); Цвет фона. Диапазон [0-7]. void textattr(int attr); Одновременное установка цветов символа и фона. Структура памяти под аргумент attr побитно имеет вид: 7 6 5 4 3 2 1 0 B b b b f f f f ffff – символ, bbb – фон, B – мерцание. Пример. textattr(BLACK+(RED<<4)); // Черный символ на красном фоне Замечания. 1. Все функции этого пункта только устанавливают цветовой режим, но окраску содержимого окна не производят. Это делают последующие за ними функции консольного ввода-вывода. 16.4. Информация о текстовом режимеvoid gettextinfo(struct text_info *ptr); Структура text_info определена в файле coniow.h и имеет вид: struct text_info{ unsigned short winleft, wintop, winright, winbottom; //Текущее окно unsigned short attribute, normattr; //Текущий атрибут unsigned short currmode; //Текстовый режим unsigned short screenheight, screenwidth; // Размеры экрана short curx, cury; // Координаты курсора в окне } |