KEY_F(9) は 273 になり (curses.h を参照)、char の範囲 (-128,127) を超えます。
char は -128 から 127 までの数値です。KEY_F(9) はおそらくその範囲外の値です。
用途:
- unsigned char、または
- 整数、または
- (文字) KEY_F(9)
または、デバッガーを使用して sizeof(KEY_F(9)) を決定し、short ではなく byte であることを確認してください。
この場合、KEY_F(9)
char
の範囲外に評価されています . switch
ステートメントは、その引数が char
であるため、それを想定しています 、すべてのケース ラベルも同様になります。 switch
の変更 switch((unsigned int)ch)
を読む 治します。