/dev/input/event0 から読み取ったキーボード イベントを、X または端末を実行していない組み込みアプリケーション内で定義されている値から ASCII に変換しようとしています。
これは、独自の std::map<> を作成するだけでなく、Linux 内で定義されたキーマップ機能を介して行う必要があると思いますが、開始するのに適した場所が見つからないようです。これまでに見つけた例のほとんどは、X ウィンドウまたは端末で実行していることを前提としています。
テキスト入力(従来のUSキーボードと7ビットASCII標準の非常に単純な場合を除く)は、非常に複雑なフィールドです。Xクライアントを使用してこれを行うことを強くお勧めします。この場合、既存のすべての入力メソッドを利用できます。
ただし、必要があり、1種類のキーボードと1つの言語に満足している場合は、端末と同じようにイベントを解釈することでこれを行います。値の定義を確認してください/usr/include/linux/input.h
。ShiftキーとCtrlキーの位置を追跡し(もちろん、Alt、Fnなどの非ASCIIキーは解釈できます)、キーアップイベントで対応するバイトを出力します。アプリケーションでデフォルトが機能しない場合は、自動リピート機能も実装することをお勧めします。
しかし、基本的には:しないでください。これは、あなたが思っているよりもはるかに(!)難しい問題です。