3

私の状況:

  • ncurses モードでは、ウィンドウcontentWinがあります。
  • このウィンドウから、このコードで「文字列」を読み取りたい。

char str [41];
wgetnstr(contentWin, str, 40);

この瞬間にF2キーをキャッチできるようになりたいです。私はキャッチ文字について考え、次に比較し、(!= F2 の場合) wgetnstr()を使用せずに端末とstrに入れます。

別の(より簡単な)方法はありますか?ありがとう :-)。

4

1 に答える 1

1

私が知っていることではありません。wgetnstr()F2などのチェックを行うのと同様の独自の関数を作成することをお勧めします。

F2をキャプチャする次のコードに基づいて関数を作成できます。

#include <ncurses.h>

int main()
{   
    int ch;

    initscr();          /* Start curses mode        */
    raw();              /* Line buffering disabled  */
    keypad(stdscr, TRUE);       /* We get F1, F2 etc..      */
    noecho();           /* Don't echo() while we do getch */

    while( (ch = wgetch(stdscr) ) != KEY_F(2))
    {
        printw("Key code: %u Key: %c\n", ch, ch);
        refresh();          /* Print it on to the real screen */
    }
    endwin();           /* End curses mode        */

    printf("F2 pressed .. program exiting\n");

    return(0);
}
于 2012-06-19T18:13:36.177 に答える