2012-11-06 6 views
6

アルファベット以外の入力文字をわかりやすく表示するための標準機能はありますか?
Say char(27)は「ESC」または「Escape」などとなります。
これは、コマンドラインでコントロールのヘルプを表示するのが簡単な方法であるため、これを尋ねています。charの名前を表示するための標準的な解決法C++?

EDIT:

@ypnosが指摘したように:質問は私自身のキー名を定義しないようにする方法です。
私が忘れてしまったboostやstdや基本的なlibに関数があったのだろうか?

今のところ、Asciiのみが機能しますが、一度Unicode入力を処理すると再実装したくないので、私は "標準"のソリューションを探しています - 後でAscii以外のアクセントの文字。

私のプログラムコードはLinuxとWindowsに送信されますが、名前が間違っていることも望ましくありません。

+0

を使用してUnicodeコードポイントの(27、言う)の名前を表示できます私は、自分のキー名の定義を避ける方法が問題だと思います。 – ypnos

+0

Thx、 'char char_names [255];を初期化する可能性もありますが、私はより見栄えの良い解決策を探しています。 –

+0

もう一つの古い学校の変種は、256の文字列エントリを持つ配列を持ち、その文字値を配列のインデックスとして使用することです。 –

答えて

2

ほとんどのC++ - y方法はおそらくOgonekのようなライブラリを経由します。残念ながら、関連する機能はまだ実装されていません。次のようになりますことを

R.マルティーニ・フェルナンデス(メンテナ)tells meは:

namespace ogonek { 
    namespace ucd { 
     … 

     basic_text<utf8> get_name(codepoint u) { 
      return basic_text<utf8> { 
       find_property_group(name_data, name_data_size, u).name }; 
     } 

     … 
    } 
} 

そして、あなたは、単に

std::cout << ogonek::ucd::get_name(27); 
+0

Unicodeデータファイルのみを使用する場合、制御文字の名前は含まれません。私のシステムにインストールされているすべての 'UnicodeData.txt'はU + 001B(27、Escape)については' 'と言わなければなりません。 –

+0

これは、エイリアスの1つ(つまり、「コントロール」の種類の1つ)を照会することで取得できます。それでもまだ実装されていません:(全体的にはまだ非常にアルファベットですが、それでもキー名ではなく、キーボードのキー名でもありませんので、助けてもらえませんか? –

+0

キーボードのキーとにかく間接的にcharに関係しています。例えば、CtrlキーやF12キーはありません。 – MSalters

関連する問題