From 4693f39fe6f0f63fc40dfe8cc4943831a6551b64 Mon Sep 17 00:00:00 2001 From: Alexander Popov Date: Wed, 16 Aug 2023 16:02:33 +0300 Subject: [PATCH] conio.h --- snipplets/code/C/conio.h/README.md | 691 +++++++++++++++++++++++++++++ 1 file changed, 691 insertions(+) create mode 100644 snipplets/code/C/conio.h/README.md diff --git a/snipplets/code/C/conio.h/README.md b/snipplets/code/C/conio.h/README.md new file mode 100644 index 0000000..21b1ea9 --- /dev/null +++ b/snipplets/code/C/conio.h/README.md @@ -0,0 +1,691 @@ +# conio.h πŸ“‘ + +Π’ этом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ прСдставлСны описания ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° `conio.h`. + +По Ρ„Π°ΠΊΡ‚Ρƒ, вСсь ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» спизТСн с сайта http://www.c-cpp.ru/funkcii/conioh, +Π½ΠΎ ΠΈΠ·-Π·Π° наличия Π½Π° 50% страницы Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹, Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. + +Если ΡΡ‡ΠΈΡ‚Π°Π΅ΡˆΡŒ, Ρ‡Ρ‚ΠΎ я Π½Π°Ρ€ΡƒΡˆΠΈΠ» Ρ‡ΡŒΠΈ-Ρ‚ΠΎ ΠΏΡ€Π°Π²Π°, Ρ‚ΠΎ ΠΌΠ½Π΅ ΠΊΠ°ΠΊ-Ρ‚ΠΎ ПОΠ₯Π£Π™. +Π’ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ всё ΠΎΠ±Ρ‰Π΅Π΅ + Π½Π° всСх страницах Π½Π΅ Π±Ρ‹Π»ΠΎ тСкста, Ρ‡Ρ‚ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» +ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ... ПОΠ₯Π£Π™ Π’ Π”Π’ΠžΠ™ΠΠ•! + +Π’ Ρ…ΠΎΠ΄Π΅ **Copy-Paste** Π±Ρ‹Π»Π° ΠΏΠΎΠΏΡ€Π°Π²Π»Π΅Π½Π° вёрстка ΠΊΠΎΠ΄Π° ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ. + +## Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ + +### `void _setcursortype(int type)` + +**ОписаниС:** + +Π­Ρ‚Π° функция Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° стандартом ANSI Π‘. + +Ѐункция `_setcursortype()` измСняСт внСшний Π²ΠΈΠ΄ курсора. +Она ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ Π΅ΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚Ρ€Π΅Ρ… макросов, +ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² Ρ„Π°ΠΉΠ»Π΅ `conio.h`. +Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с макросом `_NOCURSOR` ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ курсор. +ИспользованиС макроса `_SOLIDCURSOR` Π·Π°Π΄Π°Π΅Ρ‚ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ курсор, +Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ. +ИспользованиС макроса `_NORMALCURSOR` создаСт стандартный курсор. + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° измСняСт курсор */ +_setcursortΡƒΡ€Π΅(_SOLIDCURSOR); +``` + +### `char *getpass(const char *str)` + +**ОписаниС:** + +Π­Ρ‚Π° функция Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° стандартом ANSI Π‘. + +ПослС Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° экран подсказки `str`, функция `getpass()` +Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° строку, Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΡƒΡŽΡΡ Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ символом Π΄Π»ΠΈΠ½ΠΎΠΉ +Π½Π΅ Π±ΠΎΠ»Π΅Π΅ восьми символов. Π­Ρ‚Π° строка статичСски размСщаСтся +Π² памяти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ `getpass()` ΠΈ пСрСписываСтся всякий Ρ€Π°Π· ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. +Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ эту строку, Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ мСсто Π² памяти. +НаТатыС клавиши Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ эхом Π½Π° экранС Π²ΠΎ врСмя Π²Π²ΠΎΠ΄Π° пароля. + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ функция ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Π²Π²ΠΎΠ΄Π° подходящСго пароля */ +#include +#include + +void pswd(char *pw) { + char *input; + + do { + input = getpass ("Enter your password: "); + } while (!strcmp("starbar", input)); + + printf("You're in!"); +} +``` + +### `void window(int left, int top, int right, int bottom)` + +**ОписаниС:** + +Ѐункция `window()` ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ тСкстового ΠΎΠΊΠ½Π°, +ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎ Π»Π΅Π²Ρ‹ΠΉ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΠ³ΠΎΠ» ΠΈ ΠΏΡ€Π°Π²Ρ‹ΠΉ Π½ΠΈΠΆΠ½ΠΈΠΉ ΡƒΠ³ΠΎΠ» Π² Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ +`left`, `top` ΠΈ `right`, `bottom` соотвСтствСнно. +Если какая-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Π°, Ρ‚ΠΎ функция `window()` Π½Π΅ выполняСт Π½ΠΈΠΊΠ°ΠΊΠΈΡ… дСйствий. +ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ `window()` всС ссылки +Π½Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ мСстополоТСния ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΊΠ½Π°, Π° Π½Π΅ экрана. + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° создаСт ΠΎΠΊΠ½ΠΎ +ΠΈ записываСт строку тСкста Π² Ρ‚ΠΎΡ‡ΠΊΡƒ +с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ 2, 3 ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΊΠ½Π° */ +window (10, 10, 60, 15); +gotoxy(2, 3); +cprintf("at location 2, 3"); +``` + +### `int wherex(void)` ΠΈ `int wherey(void)` + +**ОписаниС:** + +Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ `wherex()` ΠΈ `wherey()` Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ курсора +`Ρ…` ΠΈ `Ρƒ` ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ тСкстовому ΠΎΠΊΠ½Ρƒ. + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° присваиваСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ +xpos ΠΈ ypos значСния ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ… ΠΈ Ρƒ */ +int xpos, ypos; +xpos = wherex(); +ypos = wherey(); +``` + +### `void textmode(int mode)` + +**ОписаниС:** + +Ѐункция `textmode()` ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для измСнСния Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌΠ° тСкстового экрана. +АргумСнт `mode` ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅. +МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π»ΠΈΠ±ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ макрос, +ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π² Ρ„Π°ΠΉΠ»Π΅ `conio.h`: + +| ΠœΠ°ΠΊΡ€ΠΎΡ | Числовой эквивалСнт | ОписаниС | +|----------|---------------------|-------------------------------------| +| BW40 | 0 | 40-ΠΊΠΎΠ΄ΠΎΠ½ΠΎΡ‡Π½Ρ‹ΠΉ Ρ‡Π΅Ρ€Π½ΠΎ-Π±Π΅Π»Ρ‹ΠΉ | +| Π‘40 | 1 | 40-ΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚Π½ΠΎΠΉ | +| BW80 | 2 | 80-ΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½Ρ‹ΠΉ Ρ‡Π΅Ρ€Π½ΠΎ-Π±Π΅Π»Ρ‹ΠΉ | +| Π‘80 | 3 | 80-ΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚Π½ΠΎΠΉ | +| MONO | 1 | 80-ΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½Ρ‹ΠΉ ΠΌΠΎΠ½ΠΎΡ…Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ | +| Π‘4350 | 64 | 43-строчный EGA ΠΈΠ»ΠΈ 50-строчный VGA | +| LASTMODE | -1 | ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ | + +ПослС Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ `textmode()` экран пСрСустанавливаСтся +ΠΈ всС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ тСкстового экрана Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΊ своим значСниям ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌ Π½Π° 80-ΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚Π½ΠΎΠΉ */ +textmode(Π‘80); +``` + + +### `void textcolor(int color)` + +**ОписаниС:** + +Ѐункция `textcolor()` устанавливаСт Ρ†Π²Π΅Ρ‚ символов, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π½Π° тСкстовый экран. +Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² старых компиляторах Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ **Turbo C** ΠΈ **Dev C**. +Она Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована для задания ΠΌΠ΅Ρ€Ρ†Π°ΡŽΡ‰ΠΈΡ… символов. +НиТС прСдставлСны допустимыС значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° `color` вмСстС с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ макросов, +ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ»Π΅ `conio.h`: + +| ΠœΠ°ΠΊΡ€ΠΎΡ | Π¦ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ эквивалСнт | +|--------------|---------------------| +| 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 | +| LIGHTMAGENTA | 13 | +| YELLOW | 14 | +| WHITE | 15 | +| BLINK | 128 | + +Π¦Π²Π΅Ρ‚ символов Π½Π° экранС Π½Π΅ измСняСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ `textcolor()`. +ИзмСнСния ΠΊΠ°ΡΠ°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅Ρ… символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹ послС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ `textcolor()`. + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ тСкст с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ€Ρ†Π°ΡŽΡ‰ΠΈΡ… символов */ +textcolor(BLINK); +``` + +### `void textbackground(int color)` + +**ОписаниС:** + +Ѐункция `textbackground()` устанавливаСт Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° тСкстового экрана. +Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ `textbackground()` воздСйствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ записи. +ДопустимыС Ρ†Π²Π΅Ρ‚Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ макросов, содСрТащихся Π² Ρ„Π°ΠΉΠ»Π΅ `conio.h`, ΠΈ прСдставлСнных Π½ΠΈΠΆΠ΅. + +| ΠœΠ°ΠΊΡ€ΠΎΡ | Π¦ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ эквивалСнт | +|-----------|---------------------| +| BLACK | 0 | +| BLUE | 1 | +| GREEN | 2 | +| CYAN | 3 | +| RED | 4 | +| MAGENTA | 5 | +| BROWN | 6 | +| LIGHTGRAY | 7 | + +Новый Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° становится Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ послС Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ `textbackground()`. + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° устанавливаСт Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° тСкстового экрана Π³ΠΎΠ»ΡƒΠ±Ρ‹ΠΌ */ +textbackground(CYAN); +``` + +### `void textattr(int attr)` + +**ОписаниС:** + +Ѐункция `textattr()` устанавливаСт ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΊΠ°ΠΊ Ρ†Π²Π΅Ρ‚Π° ΠΏΠ΅Ρ€Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΠ»Π°Π½Π°, Ρ‚Π°ΠΊ ΠΈ Ρ„ΠΎΠ½Π°. +Π’Π΅Π»ΠΈΡ‡ΠΈΠ½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° `attr` прСдставляСт собой Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ†Π²Π΅Ρ‚Π΅. +Бпособ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ прСдставлСн Π½ΠΈΠΆΠ΅. + +![](data:image/png;base64,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) + +ΠŸΡ€ΠΈ установкС значСния 1 Π² разрядС 7 тСкст ΠΌΠ΅Ρ€Ρ†Π°Π΅Ρ‚. +Разряды с 6 ΠΏΠΎ 4 ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π°. +Разряды с 3 ΠΏΠΎ 0 ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Ρ†Π²Π΅Ρ‚ тСкста. +НаиболСС простой способ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, +Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° Π½Π° 16 +ΠΈ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π΅Π³ΠΎ с Ρ†Π²Π΅Ρ‚ΠΎΠΌ тСкста с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ Π˜Π›Π˜. +НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π·Π΅Π»Π΅Π½Ρ‹ΠΉ Ρ„ΠΎΠ½ с синим тСкстом, +ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ `GREEN*16 | BLUE`. +Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ этот тСкст ΠΌΠ΅Ρ€Ρ†Π°Ρ‚ΡŒ, ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ Π½Π°Π΄ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Π˜Π›Π˜ +с макросом `BLINK(128)`. + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ инструкция Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ тСкст, +ΠΌΠ΅Ρ€Ρ†Π°ΡŽΡ‰ΠΈΠΉ красным Ρ†Π²Π΅Ρ‚ΠΎΠΌ Π½Π° синСм Ρ„ΠΎΠ½Π΅ */ +textattr(RED | BLINK | BLUE*16); +``` + +### `int puttext(int left, int top, int right, int bottom, void *buf)` + +**ОписаниС:** + +Ѐункция `puttext()` ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ тСкст, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сохранСнный с использованиСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ `gettext()`. +ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ осущСствляСтся ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ пСрСмСнная `buf`, +Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, лСвая вСрхняя Ρ‚ΠΎΡ‡ΠΊΠ° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ `left` ΠΈ `top`, +Π° правая ниТняя β€” `right` ΠΈ `bottom`. + +Ѐункция `puttext()` ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ экрана, +Π° Π½Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΊΠ½Π°. Она Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ `0`, +Ссли ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ выходят Π·Π° Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, +ΠΈ Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС. + +```c +/* Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ экрана Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, +Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ buf, +Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ этот тСкст Π² Π½ΠΎΠ²ΠΎΠ΅ мСсто Π½Π° экранС */ +buf = malloc (10 * 10 *2); +gettext(10, 10, 20, 20, buf); +puttext(0, 0, 30, 30, buf); +``` + +### `void normvideo(void)` + +**ОписаниС:** + +ПослС Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ `normvideo()` ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹Π΅ Π½Π° экранС символы выводятся +Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ интСнсивности. +Π­Ρ‚Π° функция Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для тСкстовых экранов. + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ€Π΅ΠΆΠΈΠΌ Π²Ρ‹Π²ΠΎΠ΄Π° с Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ */ +normvideo(); +``` + +### `void lowvideo(void)` + +**ОписаниС** + +ПослС Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ `lowvideo()` ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹Π΅ Π½Π° экранС символы выводятся +Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½Π½ΠΎΠΉ яркости. +Π­Ρ‚Π° функция Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для тСкстовых экранов. + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ с ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½Π½ΠΎΠΉ ΡΡ€ΠΊΠΎΡΡ‚ΡŒΡŽ */ +lowvideo(); +``` + +### `void highvideo(void)` + +**ОписаниС:** + +ПослС Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ `highvideo()` Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π½Π° экран символы ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ +Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠΉ яркости. Π­Ρ‚Π° функция Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для тСкстовых экранов. + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ с ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠΉ ΡΡ€ΠΊΠΎΡΡ‚ΡŒΡŽ */ +highvideo(); +``` + +### `int movetext(int left, int top, int right, int bottom, int newleft, int newtop)` + +**ОписаниС:** + +Ѐункция `movetext()` ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Ρ‡Π°ΡΡ‚ΡŒ тСкста ΠΏΠΎ экрану. +ВСкст бСрСтся ΠΈΠ· ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° с Π»Π΅Π²Ρ‹ΠΌ Π²Π΅Ρ€Ρ…Π½ΠΈΠΌ ΡƒΠ³Π»ΠΎΠΌ +Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ `left`, `top` ΠΈ ΠΏΡ€Π°Π²Ρ‹ΠΌ Π½ΠΈΠΆΠ½ΠΈΠΌ ΡƒΠ³Π»ΠΎΠΌ +Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ `right`, `bottom`. +Π’ΠΎΡ‡ΠΊΠ° полоТСния Π½ΠΎΠ²ΠΎΠ³ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΡƒΠ³Π»Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ +`newleft`, `newtop`. Π­Ρ‚Π° функция относится Π½Π΅ ΠΊ ΠΎΠΊΠ½Ρƒ, Π° ΠΊ экрану. +Ѐункция `movetext()` Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ `0`, +Ссли хотя Π±Ρ‹ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ допустимой области, +ΠΈ Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС. + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°Π΅Ρ‚ содСрТимоС ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° +с Π»Π΅Π²Ρ‹ΠΌ Π²Π΅Ρ€Ρ…Π½ΠΈΠΌ ΡƒΠ³Π»ΠΎΠΌ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ 1, 1 +ΠΈ ΠΏΡ€Π°Π²Ρ‹ΠΌ Π½ΠΈΠΆΠ½ΠΈΠΌ ΡƒΠ³Π»ΠΎΠΌ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ 8, 8 Π² Ρ‚ΠΎΡ‡ΠΊΡƒ 10, 10 */ +movetext(1, 1, 8, 8, 10, 10); +``` + +### **void insline(void)** + +**ОписаниС:** + +Ѐункция `insline()` вставляСт ΠΏΡƒΡΡ‚ΡƒΡŽ строку Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ курсора. +ВсС строки Π½ΠΈΠΆΠ΅ курсора ΡΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ Π²Π½ΠΈΠ·. +Π­Ρ‚Π° функция ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для тСкстового Ρ€Π΅ΠΆΠΈΠΌΠ° +ΠΈ выполняСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ вставки ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ тСкстового ΠΎΠΊΠ½Π°. + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ insline() */ +#include +int main(void) { + register int i; + + clrscr(); + for (i = 1; i<24; i + + ) { + gotoxy(1, i); + cprintf("This is line %d\n\r", i); + } + + getche(); + gotoxy(1, 10); + insline(); + getch(); + + return 0; +} +``` + +### `void gotoxy(int x, int y)` + +**ОписаниС:** + +Ѐункция `gotoxy()` ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ курсор тСкстового экрана Π² Ρ‚ΠΎΡ‡ΠΊΡƒ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ Ρ…, Ρƒ. +Если хотя Π±Ρ‹ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Π°, Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… дСйствий Π½Π΅ выполняСтся. + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ символы X ΠΏΠΎ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ экрана */ +#include +int main(void) { + register int i, j; + + /* Π²Ρ‹Π²ΠΎΠ΄ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ ΠΈΠ· Π₯-ΠΎΠ² */ + clrscr (); + for(i = 1, j = 1; j < 24; i+=3, j++) { + gotoxy(i, j); + cprintf("X"); + } + + getche(); + clrscr(); + + return 0; +} +``` + +### `void gettextinfo(struct text_info *info)` + +**ОписаниС:** + +Ѐункция `gettextinfo()` ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ установки тСкста +ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ… Π² структурС, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ `info`. +Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° `text_info` объявлСна ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: + +```c +struct text_info { + unsigned char winleft; /* ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ */ + unsigned char wintop; /* Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ³ΠΎΠ»Π° */ + unsigned char winright; /* ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ */ + unsigned char winbottom; /* Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΡƒΠ³ΠΎΠ»Π° */ + unsigned char attribute; /* Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ */ + unsigned char normattr; /* Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ */ + unsigned char currmode; /* Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌ */ + unsigned char screenheight; /* Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ */ + unsigned char screenwidth; /* экрана */ + unsigned char curx; /* Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ */ + unsigned char cury; /* курсора */ +}; +``` + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ установки тСкста */ +struct text_info i; +gettextinfo(&i); +``` + +### `int gettext(int left, int top, int right, int bottom, void *buf)` + +**ОписаниС:** + +Ѐункция `gettext()` ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ тСкст ΠΈΠ· ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° +с Π»Π΅Π²Ρ‹ΠΌ Π²Π΅Ρ€Ρ…Π½ΠΈΠΌ ΡƒΠ³Π»ΠΎΠΌ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ `left`, `top` +ΠΈ с ΠΏΡ€Π°Π²Ρ‹ΠΌ Π½ΠΈΠΆΠ½ΠΈΠΌ ΡƒΠ³Π»ΠΎΠΌ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ `right`, `bottom`. +ВСкст копируСтся Π² Π±ΡƒΡ„Π΅Ρ€, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ пСрСмСнная `buf`. +ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ относятся Π½Π΅ ΠΊ ΠΎΠΊΠ½Ρƒ, Π° ΠΊ экрану. + +НСобходимоС количСство памяти для хранСния области экрана вычисляСтся ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ +`число_Π±Π°ΠΉΡ‚ = строки * столбцы * 2`. +ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ число столбцов Π½Π° число строк +ΠΈ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ это ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π° `2`, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ символ, +Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Π½Π° экран, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ для хранСния **2 Π±Π°ΠΉΡ‚Π°**: +1 Π±Π°ΠΉΡ‚ для самого символа ΠΈ 1 Π±Π°ΠΉΡ‚ для Π΅Π³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ². + +Ѐункция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π² случаС успСха `1` ΠΈ `0` ΠΏΡ€ΠΈ ошибкС. + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ экрана Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, +Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ buf */ +buf = malloc(10 * 10 *2); +gettext(10, 10, 20, 20, buf); +``` + +### `void delline(void)` + +**ОписаниС:** + +Ѐункция `delline()` удаляСт строку Π² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅, которая содСрТит курсор. +ВсС Π»ΠΈΠ½ΠΈΠΈ Π½ΠΈΠΆΠ΅ удаляСмой ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π²Π²Π΅Ρ€Ρ…. +Надо ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ссли Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ мСньшС Ρ†Π΅Π»ΠΎΠ³ΠΎ экрана, +Ρ‚ΠΎ воздСйствиС оказываСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° тСкст Π² ΠΎΠΊΠ½Π΅. + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ 24 строки ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΡƒΠ±ΠΈΡ€Π°Π΅Ρ‚ строку 3 */ +#include +int main(void) { + register int i; clrscr(); + + for (i = 0; i < 24; i++) cprintf("line %d\n\r", i); + getch(); + gotoxy(1, 3); + delline(); + getch(); + + return 0; +} +``` + +### `int cscanf(char *fmt, ...)` + +**ОписаниС:** + +Ѐункция `cscanf()` Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ функция scanf(), +Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с консоли вмСсто `stdin`. +Она Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π°. ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ подробностСй слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ +ΠΊ описанию Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ `scanf()`. + +Ѐункция `cscanf()` Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ число Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±Ρ‹Π»ΠΈ присвоСны значСния. +Π­Ρ‚ΠΎ число Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ поля. Ѐункция `cscanf()` Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ `EOF` Π² случаС, +Ссли Π±Ρ‹Π»Π° сдСлана ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° чтСния Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π°. + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ с консоли строку ΠΈ число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ */ +char str[80]; +float f; +cscanf("%s%f", str, &f); +``` + +### `int cputs(const char *str)` + +**ОписаниС:** + +Ѐункция `cputs()` Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ тСкстовоС ΠΎΠΊΠ½ΠΎ строку, +Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ `str`. +Π•Π΅ Π²Ρ‹Π²ΠΎΠ΄ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½, +ΠΈ ΠΎΠ½Π° автоматичСски ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ пСрСсСчСниС Π³Ρ€Π°Π½ΠΈΡ† ΠΎΠΊΠ½Π°. + +Ѐункция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ послСдний символ, Π»ΠΈΠ±ΠΎ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ `EOF` Π² случаС возникновСния ошибки. + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° создаСт ΠΎΠΊΠ½ΠΎ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ cputs() для записи строки, +которая Π½Π΅ умСщаСтся Π² ΠΎΠΊΠ½Π΅. ВСкст фактичСски пСрСносится Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΎΠΊΠ½Π° */ +#include + +void border(int, int, int, int); + +int main(void) { + clrscr(); + + /* созданиС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° */ + window(3, 2, 40, 9); + border(3, 2, 40, 9); + gotoxy(1,1); + cputs("This line will be wrapped at the end of the window."); + getche(); + + return 0; +} + +/* Π²Ρ‹Π²ΠΎΠ΄ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° */ +void border(int startx, int starty, int endx, int endy) { + register int i; + + gotoxy(1, 1); + for (i = 0; i <= endx - startx; i++) putch('-'); + + gotoxy(1, endy - starty); + for(i = 0; i <= endx - startx; i++) putch('-'); + + for(i = 2; i < endy-starty; i++) { + gotoxy(1, i); + putch('|'); + gotoxy(endx - startx + 1, i); + putch('|'); + } +} +``` + +### `int cprintf(const char *fmt, ...)` + +**ОписаниС:** + +Ѐункция `cprintf()` Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ функция `printf()`, +с Ρ‚Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΏΠΈΡˆΠ΅Ρ‚ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ вмСсто `stdout`. +Π•Π΅ Π²Ρ‹Π²ΠΎΠ΄ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½, ΠΈ ΠΎΠ½Π° автоматичСски ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ ΠΎΠΊΠ½Π°. +ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ подробностСй слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ описанию Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ `printf()`. + +Ѐункция `cprintf()` Π½Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ символ Π½ΠΎΠ²ΠΎΠΉ строки (`\n`) +Π² ΠΏΠ°Ρ€Ρƒ **ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ**, +ΠΊΠ°ΠΊ это ΠΈΠΌΠ΅Π΅Ρ‚ мСсто Π² случаС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ `printf()`. +ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ явным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ символ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ (`\r`), +Ссли Π² этом Π΅ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ. + +Ѐункция `cprintf()` Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ число фактичСски Π²Ρ‹Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… символов. +ΠžΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ошибки. + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅, прСдставлСнныС Π½ΠΈΠΆΠ΅ Π² коммСнтариях */ +#include + +int main(void) { + /* Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎ Π»Π΅Π²ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ + "this is a test" Π² 20-символьном ΠΏΠΎΠ»Π΅ */ + cprintf("%-20s", "this is a test"); + + /* Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ вСщСствСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с трСмя Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ послС запятой + Π² 10-символьном ΠΏΠΎΠ»Π΅. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ вывСдСтся " 12.235" */ + cprintf("%10.3f\n\r", 12.234657); + + return 0; +} +``` + +### `void clreol(void)` ΠΈ `void clrscr(void)` + +**ОписаниС:** + +Ѐункция `clreol()` ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ строку ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ курсора ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. +ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ курсора Π½Π΅ измСняСтся. + +Ѐункция `clrscr()` ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ тСкстовоС ΠΎΠΊΠ½ΠΎ +ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ курсор Π² Π»Π΅Π²Ρ‹ΠΉ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΠ³ΠΎΠ» (1, 1). + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ clreol() ΠΈ clrscr() */ +#include + +int main(void) { + register int i; + + gotoxy(10, 10); + cprintf("This is a test of the clreol() function."); + getch(); + gotoxy(10, 10); + clreol(); + for(i = 0; i < 20; i++) cprintf("Hello there\n\r"); + getch(); + + /* очистка экрана */ + clrscr(); + return 0; +} +``` + +### `int kbhit()` + +**ОписаниС:** + +Π­Ρ‚Π° функция Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° стандартом ANSI C. + +Ѐункция `kbhit()` Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ истину, Ссли Π½Π°ΠΆΠ°Ρ‚Π° какая-Π»ΠΈΠ±ΠΎ клавиша Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅. +Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС возвращаСтся 0. +Π’ любом случаС ΠΊΠΎΠ΄ клавиши Π½Π΅ удаляСтся ΠΈΠ· Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±ΡƒΡ„Π΅Ρ€Π°. + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ являСтся Ρ†ΠΈΠΊΠ»ΠΎΠΌ, Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ осущСствляСтся ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ клавиши */ +while(!kbhit()); /* ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ наТатия клавиши */ +``` + +### `int ungetch(int ch)` + +**ОписаниС:** + +Π­Ρ‚Π° функция Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° стандартом ANSI Π‘. Она Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Windows. + +Ѐункция `ungetch()` Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ символ, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ младшим Π±Π°ΠΉΡ‚ΠΎΠΌ `ch`, +ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€ консоли. +ΠŸΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π° с консоли этот символ Π±ΡƒΠ΄Π΅Ρ‚ считан снова. +ΠœΠ΅ΠΆΠ΄Ρƒ двумя ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ опСрациями Π²Π²ΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ символ. + +Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ `ch` Π² случаС успСха ΠΈ `EOF` β€” ΠΏΡ€ΠΈ Π½Π΅ΡƒΠ΄Π°Ρ‡Π΅. + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΅Π΅ Π½Π° экранС, +Π·Π°Ρ‚Π΅ΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π΅ Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€, снова считываСт ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° экран */ +#include +#include + +int main() { + char ch; + ch = getch(); // ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ наТатия + putch(ch); // Π²Ρ‹Π²ΠΎΠ΄ клавиши + ungetch(ch); // Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Π² Π±ΡƒΡ„Π΅Ρ€ + ch = getch(); // ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΉ ΠΆΠ΅ клавиши Π΅Ρ‰Π΅ Ρ€Π°Π· + putch(ch); // Π²Ρ‹Π²ΠΎΠ΄ клавиши Π΅Ρ‰Π΅ Ρ€Π°Π· + + return 0; +} +``` + +### `int getch(void)` ΠΈ `int getche(void)` + +**ОписаниС:** + +Ѐункция `getch()` Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ символ, считанный с консоли, +Π½ΠΎ Π½Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ этот символ Π½Π° экран. + +Ѐункция `getche()` Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ символ, считанный с консоли, +ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ этот символ Π½Π° экран. + +Ни ΠΎΠ΄Π½Π° ΠΈΠ· этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° стандартом ANSI Π‘. + +**ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** + +```c +/* Π’ этом Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ getch() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ +для считывания Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΎΡ€Ρ„ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ */ +do { + printf("1: Check spelling\n"); + printf("2: Correct spelling\n"); + printf("3: Look up a word in the dictionary\n"); + printf("4: Quit\n"); + printf("\nEnter your selection: "); +choice = getch(); +} while(!strchr ("1234", choice)); +```