我遇到了unsigned char *的问题。这是我的代码:
unsigned char *str=NULL;
str= (unsigned char*) realloc(str, 10*sizeof(unsigned char));
int number=10;
str[0]=(unsigned char) number;
每当我尝试使用cout看到str [0]时,它会显示除10之外的其他内容。将其他变量放入str时也会出现问题:
unsigned char c='c';
str[0]=c;
cout<<str[0];
str [0]会输出一个。我错过了什么?
答案 0 :(得分:2)
s[0] = 10;
表示将字符代码10
放入数组s
的第一个位置。尝试:
s[0] = '1'; s[1] = '0'; s[2] = '\0';
可能您希望使用函数itoa(10, s, 10);
参见itoa手册,itoa函数声明为......
char* itoa(int valueToConvert, char* outputBuffer, int base);
如果您尝试cout << character
;它会打印字符,而不是字符代码。要打印字符代码,您应该cout << (int)character;
。不要将unsigned char
用于字符,字符,签名字符,简单字符,以及朋友。