diff --git a/snipplets/code/C/conio.h/README.md b/snipplets/code/C/conio.h/README.md index 21b1ea9..f8fff65 100644 --- a/snipplets/code/C/conio.h/README.md +++ b/snipplets/code/C/conio.h/README.md @@ -13,9 +13,9 @@ ## Содержание -### `void _setcursortype(int type)` +## `void _setcursortype(int type)` -**Описание:** +### Описание: Эта функция не определена стандартом ANSI С. @@ -27,16 +27,16 @@ занимающий символьную позицию. Использование макроса `_NORMALCURSOR` создает стандартный курсор. -**Пример:** +### Пример: ```c /* Следующий фрагмент кода изменяет курсор */ _setcursortуре(_SOLIDCURSOR); ``` -### `char *getpass(const char *str)` +## `char *getpass(const char *str)` -**Описание:** +### Описание: Эта функция не определена стандартом ANSI С. @@ -47,7 +47,7 @@ _setcursortуре(_SOLIDCURSOR); Если необходимо сохранить эту строку, ее нужно скопировать в какое-либо место в памяти. Нажатые клавиши не отображаются эхом на экране во время ввода пароля. -**Пример:** +### Пример: ```c /* Следующая функция ожидает ввода подходящего пароля */ @@ -65,9 +65,9 @@ void pswd(char *pw) { } ``` -### `void window(int left, int top, int right, int bottom)` +## `void window(int left, int top, int right, int bottom)` -**Описание:** +### Описание: Функция `window()` используется для создания прямоугольного текстового окна, имеющего левый верхний угол и правый нижний угол в точках с координатами @@ -76,7 +76,7 @@ void pswd(char *pw) { После успешного вызова функции `window()` все ссылки на координаты местоположения интерпретируются относительно окна, а не экрана. -**Пример:** +### Пример: ```c /* Следующий фрагмент кода создает окно @@ -87,14 +87,14 @@ gotoxy(2, 3); cprintf("at location 2, 3"); ``` -### `int wherex(void)` и `int wherey(void)` +## `int wherex(void)` и `int wherey(void)` -**Описание:** +### Описание: Функции `wherex()` и `wherey()` возвращают текущие координаты курсора `х` и `у` по отношению к текущему текстовому окну. -**Пример:** +### Пример: ```c /* Следующий фрагмент кода присваивает переменным @@ -104,9 +104,9 @@ xpos = wherex(); ypos = wherey(); ``` -### `void textmode(int mode)` +## `void textmode(int mode)` -**Описание:** +### Описание: Функция `textmode()` используется для изменения видеорежима текстового экрана. Аргумент `mode` может принимать одно из значений, показанных в следующей таблице. @@ -126,7 +126,7 @@ ypos = wherey(); После вызова функции `textmode()` экран переустанавливается и все атрибуты текстового экрана возвращаются к своим значениям по умолчанию. -**Пример:** +### Пример: ```c /* Следующий фрагмент кода переводит видеорежим на 80-колоночный цветной */ @@ -134,9 +134,9 @@ textmode(С80); ``` -### `void textcolor(int color)` +## `void textcolor(int color)` -**Описание:** +### Описание: Функция `textcolor()` устанавливает цвет символов, выводимых на текстовый экран. Работает в старых компиляторах таких, как **Turbo C** и **Dev C**. @@ -167,16 +167,16 @@ textmode(С80); Цвет символов на экране не изменяется функцией `textcolor()`. Изменения касаются только тех символов, которые будут выведены после функции `textcolor()`. -**Пример:** +### Пример: ```c /* Следующий фрагмент кода выводит текст с помощью мерцающих символов */ textcolor(BLINK); ``` -### `void textbackground(int color)` +## `void textbackground(int color)` -**Описание:** +### Описание: Функция `textbackground()` устанавливает цвет фона текстового экрана. Вызов функции `textbackground()` воздействует только на цвет фона последующих операций записи. @@ -195,16 +195,16 @@ textcolor(BLINK); Новый цвет фона становится видимым после вызова функции `textbackground()`. -**Пример:** +### Пример: ```c /* Следующий фрагмент кода устанавливает цвет фона текстового экрана голубым */ textbackground(CYAN); ``` -### `void textattr(int attr)` +## `void textattr(int attr)` -**Описание:** +### Описание: Функция `textattr()` устанавливает одновременно как цвета переднего плана, так и фона. Величина параметра `attr` представляет собой закодированную информацию о цвете. @@ -223,7 +223,7 @@ textbackground(CYAN); Для того, чтобы заставить этот текст мерцать, к результату надо применить операцию побитового ИЛИ с макросом `BLINK(128)`. -**Пример:** +### Пример: ```c /* Следующая инструкция выводит текст, @@ -231,9 +231,9 @@ textbackground(CYAN); textattr(RED | BLINK | BLUE*16); ``` -### `int puttext(int left, int top, int right, int bottom, void *buf)` +## `int puttext(int left, int top, int right, int bottom, void *buf)` -**Описание:** +### Описание: Функция `puttext()` копирует текст, предварительно сохраненный с использованием функции `gettext()`. Копирование осуществляется из буфера, на который указывает переменная `buf`, @@ -245,6 +245,8 @@ textattr(RED | BLINK | BLUE*16); если координаты выходят за допустимую область, и ненулевое значение — в противном случае. +### Пример: + ```c /* Следующий фрагмент кода копирует область экрана в память, на которую указывает параметр buf, @@ -254,22 +256,22 @@ gettext(10, 10, 20, 20, buf); puttext(0, 0, 30, 30, buf); ``` -### `void normvideo(void)` +## `void normvideo(void)` -**Описание:** +### Описание: После вызова функции `normvideo()` изображенные на экране символы выводятся в режиме нормальной интенсивности. Эта функция работает только для текстовых экранов. -**Пример:** +### Пример: ```c /* Следующий фрагмент кода включает режим вывода с нормальной интенсивностью */ normvideo(); ``` -### `void lowvideo(void)` +## `void lowvideo(void)` **Описание** @@ -277,30 +279,30 @@ normvideo(); в режиме пониженной яркости. Эта функция работает только для текстовых экранов. -**Пример:** +### Пример: ```c /* Следующий фрагмент кода включает вывод с пониженной яркостью */ lowvideo(); ``` -### `void highvideo(void)` +## `void highvideo(void)` -**Описание:** +### Описание: После вызова функции `highvideo()` выводимые на экран символы изображаются в режиме повышенной яркости. Эта функция работает только для текстовых экранов. -**Пример:** +### Пример: ```c /* Следующий фрагмент кода включает вывод с повышенной яркостью */ highvideo(); ``` -### `int movetext(int left, int top, int right, int bottom, int newleft, int newtop)` +## `int movetext(int left, int top, int right, int bottom, int newleft, int newtop)` -**Описание:** +### Описание: Функция `movetext()` перемещает часть текста по экрану. Текст берется из прямоугольника с левым верхним углом @@ -312,7 +314,7 @@ highvideo(); если хотя бы одна из координат выходит за пределы допустимой области, и ненулевое значение — в противном случае. -**Пример:** +### Пример: ```c /* Следующий фрагмент кода передвигает содержимое прямоугольника @@ -321,16 +323,16 @@ highvideo(); movetext(1, 1, 8, 8, 10, 10); ``` -### **void insline(void)** +## **void insline(void)** -**Описание:** +### Описание: Функция `insline()` вставляет пустую строку в текущее положение курсора. Все строки ниже курсора сдвигаются вниз. Эта функция предназначена только для текстового режима и выполняет операцию вставки относительно текущего текстового окна. -**Пример:** +### Пример: ```c /* Следующая программа иллюстрирует использование функции insline() */ @@ -353,14 +355,14 @@ int main(void) { } ``` -### `void gotoxy(int x, int y)` +## `void gotoxy(int x, int y)` -**Описание:** +### Описание: Функция `gotoxy()` помещает курсор текстового экрана в точку с координатами х, у. Если хотя бы одна из координат недействительна, то никаких действий не выполняется. -**Пример:** +### Пример: ```c /* Следующая программа выводит символы X по диагонали экрана */ @@ -382,9 +384,9 @@ int main(void) { } ``` -### `void gettextinfo(struct text_info *info)` +## `void gettextinfo(struct text_info *info)` -**Описание:** +### Описание: Функция `gettextinfo()` получает текущие установки текста и возвращает их в структуре, на которую указывает параметр `info`. @@ -406,7 +408,7 @@ struct text_info { }; ``` -**Пример:** +### Пример: ```c /* Следующий фрагмент получает текущие установки текста */ @@ -414,9 +416,9 @@ struct text_info i; gettextinfo(&i); ``` -### `int gettext(int left, int top, int right, int bottom, void *buf)` +## `int gettext(int left, int top, int right, int bottom, void *buf)` -**Описание:** +### Описание: Функция `gettext()` копирует текст из прямоугольника с левым верхним углом в точке `left`, `top` @@ -433,7 +435,7 @@ gettextinfo(&i); Функция возвращает в случае успеха `1` и `0` при ошибке. -**Пример:** +### Пример: ```c /* Следующий фрагмент кода копирует область экрана в память, @@ -442,16 +444,16 @@ buf = malloc(10 * 10 *2); gettext(10, 10, 20, 20, buf); ``` -### `void delline(void)` +## `void delline(void)` -**Описание:** +### Описание: Функция `delline()` удаляет строку в активном окне, которая содержит курсор. Все линии ниже удаляемой поднимаются вверх. Надо помнить, что если текущее окно меньше целого экрана, то воздействие оказывается только на текст в окне. -**Пример:** +### Пример: ```c /* Следующая программа выводит 24 строки и затем убирает строку 3 */ @@ -469,9 +471,9 @@ int main(void) { } ``` -### `int cscanf(char *fmt, ...)` +## `int cscanf(char *fmt, ...)` -**Описание:** +### Описание: Функция `cscanf()` работает так же, как и функция scanf(), за исключением того, что она читает информацию с консоли вместо `stdin`. @@ -482,7 +484,7 @@ int main(void) { Это число не включает пропущенные поля. Функция `cscanf()` возвращает значение `EOF` в случае, если была сделана попытка чтения за пределами конца файла. -**Пример:** +### Пример: ```c /* Следующий фрагмент кода читает с консоли строку и число с плавающей точкой */ @@ -491,9 +493,9 @@ float f; cscanf("%s%f", str, &f); ``` -### `int cputs(const char *str)` +## `int cputs(const char *str)` -**Описание:** +### Описание: Функция `cputs()` выводит в текущее текстовое окно строку, на которую указывает параметр `str`. @@ -502,7 +504,7 @@ cscanf("%s%f", str, &f); Функция возвращает последний символ, либо величину `EOF` в случае возникновения ошибки. -**Пример:** +### Пример: ```c /* Следующая программа создает окно и использует функцию cputs() для записи строки, @@ -543,9 +545,9 @@ void border(int startx, int starty, int endx, int endy) { } ``` -### `int cprintf(const char *fmt, ...)` +## `int cprintf(const char *fmt, ...)` -**Описание:** +### Описание: Функция `cprintf()` работает так же, как и функция `printf()`, с тем только отличием, что она пишет в текущее окно вместо `stdout`. @@ -561,7 +563,7 @@ void border(int startx, int starty, int endx, int endy) { Функция `cprintf()` возвращает число фактически выведенных символов. Отрицательное возвращаемое значение означает наличие ошибки. -**Пример:** +### Пример: ```c /* Следующая программа выводит данные, представленные ниже в комментариях */ @@ -580,9 +582,9 @@ int main(void) { } ``` -### `void clreol(void)` и `void clrscr(void)` +## `void clreol(void)` и `void clrscr(void)` -**Описание:** +### Описание: Функция `clreol()` очищает строку от текущей позиции курсора и до конца строки активного окна. Позиция курсора не изменяется. @@ -590,7 +592,7 @@ int main(void) { Функция `clrscr()` полностью очищает активное текстовое окно и помещает курсор в левый верхний угол (1, 1). -**Пример:** +### Пример: ```c /* Следующая программа иллюстрирует использование функций clreol() и clrscr() */ @@ -613,9 +615,9 @@ int main(void) { } ``` -### `int kbhit()` +## `int kbhit()` -**Описание:** +### Описание: Эта функция не определена стандартом ANSI C. @@ -623,16 +625,16 @@ int main(void) { В противном случае возвращается 0. В любом случае код клавиши не удаляется из входного буфера. -**Пример:** +### Пример: ```c /* Следующий фрагмент является циклом, выход из которого осуществляется по нажатию клавиши */ while(!kbhit()); /* ожидание нажатия клавиши */ ``` -### `int ungetch(int ch)` +## `int ungetch(int ch)` -**Описание:** +### Описание: Эта функция не определена стандартом ANSI С. Она не может использоваться в программах Windows. @@ -643,7 +645,7 @@ while(!kbhit()); /* ожидание нажатия клавиши */ Возвращаемое значение равно `ch` в случае успеха и `EOF` — при неудаче. -**Пример:** +### Пример: ```c /* Приведенная ниже программа вводит клавишу, отображает ее на экране, @@ -663,9 +665,9 @@ int main() { } ``` -### `int getch(void)` и `int getche(void)` +## `int getch(void)` и `int getche(void)` -**Описание:** +### Описание: Функция `getch()` возвращает очередной символ, считанный с консоли, но не выводит этот символ на экран. @@ -675,7 +677,7 @@ int main() { Ни одна из этих функций не определена стандартом ANSI С. -**Пример:** +### Пример: ```c /* В этом фрагменте getch() используется diff --git a/snipplets/code/C/conio.h/textattr_coding.png b/snipplets/code/C/conio.h/textattr_coding.png new file mode 100644 index 0000000..ff8f0af Binary files /dev/null and b/snipplets/code/C/conio.h/textattr_coding.png differ