我正在尝试将unsigned char转换为ascii文本。我该怎么做? 我试过这个,但这是错的:
typedef struct mtmheader
{
unsigned char objName[20];
unsigned char msgType[2];
}mtmheader;
mtmheader h;
processMTMHeader(datap,&h, endmmsgp );
printf("Name, type: %s %c\n",(char *) &h.objName,(char *) &h.msgType);
修改 我读取无符号字节流,并想知道我怎么打印是ascii文本。在printf中只有伪代码,这是错误的。
答案 0 :(得分:4)
printf("Name, type: %s %c\n", h.objName, h.msgType[0]);
应该打印整个字符串objName
和msgType
中的第一个字符。
对于第一个工作,你必须确保objName
真的是空终止。
unsigned char
对于使用char
而不使用unsigned
的字符串而言,使用的字符串类型不正确。