2014-02-10 102 views
0

我试图将unsigned char转换为ascii文本。我该怎么做? 我已经试过这一点,但它是错误的:如何打印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

请发布一个示例输入和你期望的输出 – anatolyg

回答

4
printf("Name, type: %s %c\n", h.objName, h.msgType[0]); 

应打印整个字符串和msgType的第一个字符。

对于第一次工作,你必须确保是真的终止。

另外unsigned char是不正确的类型使用字符串使用普通char没有unsigned

+0

我知道'unsigned char'不正确。这是我的问题。为什么我发送了这个问题。 – MaMu