Cでcursesを使用して押された矢印キーを検出するにはどうすればよいですか?

Mac OS X でも同じ問題が見つかりましたが、以下を追加することで解決しました:

keypad(stdscr, TRUE);

getch() を保存していました int であるはずのときに char として呼び出します。切り替え後は正常に動作します。


標準 (VT100 のような) 端末は、矢印キーが押されると一連の文字を送信します。これらが順番に押されたかどうかを追跡する必要があります。注目すべき文字は次のとおりです:

Down Arrow  0x1B 0x5B 0x42
Left Arrow  0x1B 0x5B 0x44
Right Arrow 0x1B 0x5B 0x43
Up Arrow    0x1B 0x5B 0x41