ncurses を使った小さなコンソール ゲームに取り組んでいます。メイン メニューで、ユーザーがコントロール キーを設定できるようにします。私が理解している限りでは、ncurses では、char 'a' の int 値によって a-key にアクセスできます。「a」を使用してゲーム内でキーを使用すると問題なく動作しますが、メニューに行き詰まっています。
キーバインディングごとに、デフォルトで ea 'a' に設定された int 値を保存しました。ゲームが始まると、int 値から 'a' バインディングを正しく読み取り、ゲーム内で使用できます。ただし、正しく表示されません。「左:a」のようにしたい。私はこのようにします:
std::string key = "Left: " + static_cast<char>(_value);
_value は、保存して「a」として初期化した int 値です。ところで、キャストなしでも試してみました。
今表示されているものは奇妙です。"a" の代わりに "~T^C" と表示されます。文字「s」と「d」については、何も表示されません。「w」は、非常に奇妙なエンコーディングのクエスチョン マークになります。
int値などの文字のエンコーディングと関係があると思います。では、正しい方法で表示するにはどうすればよいでしょうか。
どうもありがとう!