|
≫ |
|
|
|
HP OpenVMS HP C ランタイム・ライブラリ・リファレンス・マニュアル (下巻)
UNIX システム環境では,
crmode関数と
nocrmode関数は端末を cbreak モードに設定するか,または設定を解除します。cbreak モードでは, Return を処理せずに 1 文字の入力文字を処理することができます。このシングル文字入力モードは Curses 入力ルーチン
getchでのみサポートされます。
形式
#include <curses.h>
crmode()
nocrmode()
例
/* Program to demonstrate the use of crmod() and curses */
#include <curses.h>
main()
{
WINDOW *win1;
char vert = '.',
hor = '.',
str[80];
/* Initialize standard screen, turn echo off. */
initscr();
noecho();
/* Define a user window. */
win1 = newwin(22, 78, 1, 1);
/* Turn on reverse video and draw a box on border. */
setattr(_REVERSE);
box(stdscr, vert, hor);
mvwaddstr(win1, 2, 2, "Test cbreak input");
refresh();
wrefresh(win1);
/* Set cbreak, do some input, and output it. */
crmode();
getch();
nocrmode(); /* Turn off cbreak. */
mvwaddstr(win1, 5, 5, str);
mvwaddstr(win1, 7, 7, "Type something to clear the screen");
wrefresh(win1);
/* Get another character, then delete the window. */
getch();
wclear(win1);
touchwin(stdscr);
endwin();
}
|
この例では,
getchの最初の呼び出しは, 1 文字が入力されるとただちに戻ります。これは,
getchが呼び出される前に,
crmodeが呼び出されているからです。
getchの 2 回目の呼び出しでは,入力された文字を処理する前に,Return キーが押されるのを待ちます。これは,
getchの 2 回目の呼び出しの前に,
nocrmodeが呼び出されているからです。
|