2014-02-10 103 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