2012-04-23 10 views
0

私はints i([0,255])のリストを持っており、これらのintをcharに変換したいと思います。C++ int to char

int i; 
char c = (char)i; 

私がc(i = 0の場合)を印刷すると、対応するasciiシンボルが表示されません。 マッピングを正しく行うにはどうすればいいですか?

+1

ASCII「0」はヌルターミネータなので、何も印刷されません。あなたは "' 0' "を印刷しますか?もしそうなら、 'c = '0' + i;'を実行することができますが、9以上の値に対しては何を印刷したいでしょうか? –

+0

http://en.wikipedia.org/wiki/Ascii#ASCII_printable_characters –

+0

文字のベクトルとしてintのベクトルを比較したいもの。 – Eric

答えて

1

ASCII値とint値を混在させています... ASCIIテーブルを見ればわかります。 '0'を印刷するには、値48(10進数)を印刷する必要があります。 0から9までの値を出力するには、int値に48を追加するだけで、正しいASCIIコードが得られます。 1桁以上の値を出力するには、1つのintから複数のASCIIコードに何らかの変換が必要です。そのような機能を見つけるにはGoogle検索が必要です。

+0

本当に、私はこのマッピング関数を探しています。 tx。 – Eric

0

値0に意味のあるASCII記号があるとは思いません。それはNULL文字なので、何も印刷しないでください。 i = 97( 'a')などの値を印刷してみてはどうでしょうか?

an ASCII tableを調べると、すべてのASCII文字が意味のある印刷値を持つとは限りません。

+0

問題は次のとおりです。私はベクトルで作業し、使用するアルゴリズムはベクトルで作業しました。私はそれを変換するマッピング関数が欲しいです。私のintが[0,255]に属すると仮定します。 – Eric

4

ASCII 0のシンボルはありません.32未満のすべてのASCII値は制御文字です。

+2

これは、多くのプログラムは、エスケープシーケンスがそれを示すことを許可するので、文字列の配列を作成し、エスケープシーケンスを印刷することができます... –