  | 
≫  | 
 | 
  
 | 
    
      | 
    
    
    
     
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が呼び出されているからです。
  
 
 
      |