Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 103

Автор ΠœΡΡ‚ΡŒΡŽ НСйл

Β int x_loop;

Β int y_loop;

Β int counter;

Β char a_letter = '1';

Β initscr();

Β for (y_loop = 0; y_loop < LINES - 1; y_loop++) {

Β  for (x_loop = 0; x_loop < COLS - 1; x_loop++) {

Β  Β mvwaddch(stdscr, y_loop, x_loop, a_letter);

Β  Β a_letter++;

Β Β  if (a_letter > '9') a_letter = '1';

Β  }

Β }

2.Β Π’Π΅ΠΏΠ΅Ρ€ΡŒ создайтС Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ΄ΠΎΠΊΠ½ΠΎ с ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΎΠΉ. Как Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π»ΠΎΡΡŒ, Π²Π°ΠΌ слСдуСт ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ экрана "ΠΊΠΎΡΠ½ΡƒΡ‚ΡŒΡΡ" Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°:

Β ub_window_ptr = subwin(stdscr, 10, 20, 10, 10);

Β scrollok(sub_window_ptr, 1);

Β touchwin(stdscr);

Β refresh();

Β sleep(1);

3.Β Π‘ΠΎΡ‚Ρ€ΠΈΡ‚Π΅ содСрТимоС Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ Π² Π½Π΅ΠΌ тСкст ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Π΅Π³ΠΎ. ΠŸΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠ° тСкста обСспСчиваСтся Ρ†ΠΈΠΊΠ»ΠΎΠΌ:

Β werase(sub_window_ptr);

Β mvwprintw(sub_window_ptr, 2, 0, "%s", "This window will now scroll");

Β wrefresh(sub_window_ptr);

Β sleep(1);

Β for (counter = 1; counter < 10; counter++) {

Β  wprintw(sub_window_ptr, "%s", "This text is both wrapping and \

Β Β  scrolling.");

Β Β wrefresh(sub_window_ptr);

Β Β sleep(1);

Β }

4.Β Π—Π°Π²Π΅Ρ€ΡˆΠΈΠ² Ρ†ΠΈΠΊΠ», ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ основной экран:

Β delwin(sub_window_ptr);

Β touchwin(stdscr);

Β refresh();

Β sleep(1);

Β endwin();

Β exit(EXIT_SUCCESS);

}

К ΠΊΠΎΠ½Ρ†Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π½Π° рис. 6.6.

ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² Linux - image017.jpg

Рис. 6.6 

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

ПослС присвоСния ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ

sub_window_ptr
Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π²Ρ‹Π·ΠΎΠ²Π°
subwin
Π²Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΡƒ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. Π”Π°ΠΆΠ΅ послС удалСния Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΈ обновлСния Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° (
strdcr
) тСкст Π½Π° экранС Π½Π΅ мСняСтся, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ ΠΎΡ‚ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ экрана
strdcr
.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°

Π’Ρ‹ ΡƒΠΆΠ΅ познакомились с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ срСдствами Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ curses для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°. Π£ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, Π΅ΡΡ‚ΡŒ клавиши управлСния курсором ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ клавиши. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€ Π΅ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ клавиши, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, <Insert> ΠΈ <Home>.

Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ° этих клавиш β€” ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΡΡ‹Π»Π°ΡŽΡ‚ строку символов, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΡƒΡŽΡΡ с escape-символа. Π”Π΅Π»ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиши <Esc> ΠΎΡ‚ строки символов, появившСйся Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ наТатия Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ клавиши, ΠΎΠ½ΠΎ Π΅Ρ‰Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ с Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°ΠΌΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΌΠΈ Ρ€Π°Π·Π½Ρ‹Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ для ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ логичСских клавиш.

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° curses прСдоставляСт элСгантноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для управлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ клавишами. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π² структурС

terminfo
для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° хранится ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, отправляСмая ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ клавишСй, ΠΈ Π²ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ„Π°ΠΉΠ»Π΅ curses.h для логичСских клавиш Π΅ΡΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…ΡΡ с прСфикса
KEY_
.

Когда curses стартуСт, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ Π² логичСскиС клавиши ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ, ΠΈ Π΅Π³ΠΎ слСдуСт Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

keypad
. Если Π²Ρ‹Π·ΠΎΠ² ΡƒΡΠΏΠ΅ΡˆΠ΅Π½, функция Π²Π΅Ρ€Π½Π΅Ρ‚
OK
, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС
ERR
.

<b>#include &lt;curses.h&gt;</b>

<b>int keypad(WINDOW *window_ptr, bool keypad_on);</b>

Когда Ρ€Π΅ΠΆΠΈΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

keypad
с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ
keypad_on
, Ρ€Π°Π²Π½Ρ‹ΠΌ
true
, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° curses ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π° сСбя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½Ρ‹Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°ΠΆΠ°Ρ‚ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ, Π½ΠΎ ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ Π²ΠΈΠ΄Π°
KEY_
для логичСских клавиш.

ΠžΡ‚ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅ Ρ‚Ρ€ΠΈ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ограничСния, Π½Π°Π»Π°Π³Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ использовании Ρ€Π΅ΠΆΠΈΠΌΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹.

░ РаспознаваниС escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ сСтСвыС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ ΡΠ³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΡŽΡ‚ символы Π² ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ (Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΌΡƒ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡŽ escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ) ΠΈΠ»ΠΈ раздСлят ΠΈΡ… (Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… клавиш, ΠΊΠ°ΠΊ клавиши <Esc> ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… символов). Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‡Π°Ρ‰Π΅ всСго Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ Π² Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… сСтях (Wide-Area Network, WAN) ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Ρ… линиях связи. ЕдинствСнный Π²Ρ‹Ρ…ΠΎΠ΄ β€” ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρ‹ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ отправляли Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ символы Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ клавиши, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π²Π°ΠΌΠΈ, хотя это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ количСство ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… символов.

░ Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° curses ΠΌΠΎΠ³Π»Π° ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиши <Esc> ΠΎΡ‚ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅ΠΉΡΡ с символа

Esc
, Π΅ΠΉ трСбуСтся ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Иногда ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π»Π΅Π³ΠΊΡƒΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ клавиши <Esc>.

β–‘Β Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° curses Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Если Ρƒ вашСго Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ клавиши, ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° просто Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π΅Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΡƒΡŽ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ слСдуСт Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ.

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 6.6.

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 6.6. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹

Π”Π°Π»Π΅Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° короткая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° keypad.c, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. ПослС запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ <Esc> ΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ, Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° пытаСтся ΠΏΠΎΠ½ΡΡ‚ΡŒ: Esc β€” это Π½Π°Ρ‡Π°Π»ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ»ΠΈ просто Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ клавиши,

1.Β Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ curses, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Ρ€Π΅ΠΆΠΈΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹:

#include &lt;unistd.h&gt;

#include &lt;stdlib.h&gt;