2011-10-30 8 views
0

unsigned char *に問題があります。ここに私のコードは次のとおりです。unsigned char *に関する問題*

unsigned char *str=NULL; 
str= (unsigned char*) realloc(str, 10*sizeof(unsigned char)); 
int number=10; 
str[0]=(unsigned char) number; 

私はCOUTに[0]をstrを参照しようとするたびに、それはSTRに他の変数を入れたときに私も悩みを持っている10以外の何か他のものを示しています

unsigned char c='c'; 
str[0]=c; 
cout<<str[0]; 

str [0]はaを出力します。私は何が欠けていますか?

+0

あなたはそれに 'c''を入れて、' a'を表示するのですか? – Shahbaz

+0

unsigned charではなくcharを使用してください。 –

+0

'std :: string'を使います。 –

答えて

2

s[0] = 10;は、配列sの最初の位置に文字コード10を入れることを意味します。試してみてください:

s[0] = '1'; s[1] = '0'; s[2] = '\0'; 

をおそらくあなたが見るマニュアルitoaはitoa(10, s, 10);

あなたがcout << characterを実行しようとした場合、関数itoaはが

char* itoa(int valueToConvert, char* outputBuffer, int base); 

...として宣言された関数を使用する代わりたいと思います。文字コードではなく文字を出力します。文字コードを印刷するには、cout << (int)character;を実行する必要があります。文字の場合はunsigned charを使用しないでください。文字の場合は、署名された文字、単純な文字、友人の場合。

+0

はい、intにキャストして問題を解決しました。 –

関連する問題