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

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

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

НСкоторым ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ с использованиСм curses Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ структуру

stdscr
, которая примСняСтся Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… функциях curses ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€. Однако Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ структура
stdscr
рСализуСтся ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ, ΠΈ ΠΊ Π½Π΅ΠΉ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ слСдуСт ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. Π£ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с использованиСм curses практичСски Π½Π΅Ρ‚ Π½ΡƒΠΆΠ΄Ρ‹ Π² ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ структуры
curscr
.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, процСсс Π²Ρ‹Π²ΠΎΠ΄Π° символов Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ curses выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

1.Β Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ curses для обновлСния логичСского экрана.

2.Β Π—Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ curses ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ физичСского экрана с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

refresh
.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ Π΄Π²ΡƒΡ…ΡˆΠ°Π³ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΏΠΎΠΌΠΈΠΌΠΎ большСй лСгкости ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ β€” ΠΎΡ‡Π΅Π½ΡŒ эффСктивный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ обновлСния экрана curses. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒ Π²Π°ΠΆΠ½ΠΎ для экрана консоли, Π½ΠΎ становится сущСствСнным ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ, Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° выполняСтся Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ сСтСвоС соСдинСниС.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° с использованиСм curses Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ мноТСство Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° логичСский экран, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, пСрСмСщая курсор ΠΏΠΎ всСму экрану для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π½ΡƒΠΆΠ½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° тСкста ΠΈΠ»ΠΈ рисования Π»ΠΈΠ½ΠΈΠΉ ΠΈ Ρ€Π°ΠΌΠΎΠΊ. На ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ этапС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ потрСбуСтся ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ вСсь этот Π²Ρ‹Π²ΠΎΠ΄. Когда это ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΠΎ врСмя Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

refresh
), Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° curses Π½Π°ΠΉΠ΄Π΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ способ формирования физичСского экрана, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ логичСскому. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡ Π½ΡƒΠΆΠ½Ρ‹Π΅ характСристики Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΈ оптимизируя пСрСмСщСния курсора, curses часто обновляСт экран, выводя Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС символов ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ со всСми опСрациями записи Π½Π° экран, Ссли Π±Ρ‹ ΠΎΠ½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ.

ΠœΠ°ΠΊΠ΅Ρ‚ логичСского экрана β€” это ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ массив, упорядочСнный ΠΏΠΎ строкам ΠΈ столбцам, с Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ экрана (0, 0) Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ (рис.Β 6.1).

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

Рис. 6.1

Π’ΠΎ всСх функциях Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ curses ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Ρƒ (строки) ΠΏΠ΅Ρ€Π΅Π΄ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ… (столбцы). КаТдая позиция Ρ…Ρ€Π°Π½ΠΈΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ символ, располоТСнный Π² этом мСстС экрана, Π½ΠΎ ΠΈ Π΅Π³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹. Атрибуты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ, зависят ΠΎΡ‚ физичСских характСристик Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΎΠ½ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΠΆΠΈΡ€Π½ΠΎΠ΅ Π½Π°Ρ‡Π΅Ρ€Ρ‚Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ символа. На консолях Linux Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ доступны Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ†Π²Π΅Ρ‚, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π΄Π°Π»Π΅Π΅ Π² этой Π³Π»Π°Π²Π΅.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° curses нуТдаСтся Π² создании ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ…, всС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с использованиСм curses Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π·Π°Ρ‚Π΅ΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π΅ΠΉ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ установки послС Π΅Π΅ примСнСния. ДСлаСтся это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΏΠ°Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

initscr
ΠΈ
endwin
(ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 6.1).

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 6.1. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° с использованиСм curses, выводящая привСтствиС

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΡƒΡŽ curses ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ screen1.c, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ эти ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² дСйствии. Π”Π°Π»Π΅Π΅ Π±ΡƒΠ΄ΡƒΡ‚ описаны ΠΈΡ… ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡ‹.

1.Β Π’ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» curses.h ΠΈ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ

main
, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π² исходноС состояниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ curses:

#include <unistd.h>

#include <stdlib.h>

#include <curses.h>

int main() {

Β initscr();

Β ...

Β endwin();

Β exit(EXIT_SUCCESS);

}

2. Π’Π½ΡƒΡ‚Ρ€ΡŒ помСститС ΠΊΠΎΠ΄ для пСрСмСщСния курсора Π² Ρ‚ΠΎΡ‡ΠΊΡƒ (5, 15) Π½Π° логичСском экранС, Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ привСтствиС "Hello World"Β ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ экран. Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ Π²Ρ‹Π·ΠΎΠ²

sleep(2
) для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π΄Π²Π΅ сСкунды ΠΈ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Π½Π° экран ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ΠΌ:

move(5, 15);

printw("%s", "Hello World");

refresh();

sleep(2);

Пока ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° выполняСтся, Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ„Ρ€Π°Π·Ρƒ "Hello World" Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΠΊΠ²Π°Π΄Ρ€Π°Π½Ρ‚Π΅ пустого экрана (рис. 6.2).

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

Рис. 6.2

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

Π­Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ curses, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ курсор Π² Π·Π°Π΄Π°Π½Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ экрана ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ тСкст. ПослС ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΉ ΠΏΠ°ΡƒΠ·Ρ‹ ΠΎΠ½Π° Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ.

Π­ΠΊΡ€Π°Π½

Как: Π²Ρ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ, всС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с использованиСм curses Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

initscr
ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
endwin
. Π”Π°Π»Π΅Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΈΡ… описания ΠΈΠ· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

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

<b>WINDOW *initscr(void);</b>

<b>int endwin(void);</b>

Ѐункция

initscr
Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π’ случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° структуру
stdscr
. Если функция заканчиваСтся Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎ, ΠΎΠ½Π° просто Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ диагностичСскоС сообщСниС ΠΎΠ± ошибкС ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Ѐункция

endwin
Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ константу OK Π² случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΈ err Π² случаС Π½Π΅ΡƒΠ΄Π°Ρ‡ΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΅Π΅ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠΈΠ½ΡƒΡ‚ΡŒ curses, Π° ΠΏΠΎΠ·ΠΆΠ΅ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ curses, Π²Ρ‹Π·Π²Π°Π²
clearok(stdscr, 1)
ΠΈ
refresh
. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π·Π°Π±Ρ‹Ρ‚ΡŒ, ΠΊΠ°ΠΊ выглядит физичСский экран, ΠΈ заставит Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ экрана.

Π’Ρ‹Π²ΠΎΠ΄ Π½Π° экран

Для обновлСния экрана прСдоставляСтся нСсколько Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

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

<b>int addch(const chtype char_to_add);</b>

<b>int addchstr(chtype *const string_to_add);</b>

<b>int printw(char *format, ...);</b>

<b>int refresh(void);</b>

<b>int box(WINDOW *win_ptr, chtype vertical_char, chtype horizontal_char);</b>

<b>int insch(chtype char_to_insert);</b>

<b>int insertln(void);</b>

<b>int delch(void);</b>

<b>int deleteln(void);</b>

<b>int beep(void);</b>

<b>int flash(void);</b>