2011-10-30 4 views
0

unsigned char *에 문제가 있습니다. 내가 STR를 참조하려고 할 때마다 [0] cout과 함께, 그것은 str 내의 다른 변수를 넣어 때 나는 또한 문제가 10 이외의 다른 것을 보여줍니다서명되지 않은 char * 문제 해결

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

:

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

을 여기에 내 코드입니다 str [0]은 a를 출력합니다. 내가 뭘 놓치고 있니?

+0

당신은 당신이 그것을 'c'라고 말하면 그것은 'a'를 보여줍니다! – Shahbaz

+0

부호없는 char이 아닌 char을 사용하십시오. –

+0

'std :: string'을 사용하십시오. –

답변

2

s[0] = 10;은 배열 s의 첫 번째 위치에 문자 코드 10을 넣는 것을 의미합니다. 시도 :

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

당신이, itoa 수동보기 기능을 itoa과 같이 선언 된 기능을 itoa(10, s, 10);

를 사용하는 대신 싶습니다 ...

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

당신이 cout << character을하려고하면, 문자 코드가 아닌 문자를 출력합니다. 문자 코드를 인쇄하려면 cout << (int)character;을 사용해야합니다. 문자에 대해서는 unsigned char을 사용하지 말고, 문자, 기호 문자, 서명 된 문자, 단순히 문자, 친구를 위해 사용하지 마십시오.

+0

예, 그냥 int로 캐스팅하고 문제를 해결했습니다. –

관련 문제