我使用的是vs2015版本,在使用format函式后,出現了亂碼,現在鬧不清楚什么原因。
這個是傳輸進來了一個“11”

后邊經過format后,str里邊的資料不是“11”,而是亂碼,不知道什么原因
uj5u.com熱心網友回復:
CString里的編碼是unicode編碼, 所以如果要使用CString 的 format時, %s就必須對應wchar_t*格式的值.str.Format(L"%s\n", (LPCWSTR)s);
uj5u.com熱心網友回復:
轉換出錯了吧。uj5u.com熱心網友回復:
接收完畢后再sprintfuj5u.com熱心網友回復:
buf的內容應該用類似下面的函式查看:void HexDump(char *buf,int len,int addr) {
int i,j,k;
char binstr[80];
for (i=0;i<len;i++) {
if (0==(i%16)) {
sprintf(binstr,"%08x -",i+addr);
sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);
} else if (15==(i%16)) {
sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);
sprintf(binstr,"%s ",binstr);
for (j=i-15;j<=i;j++) {
sprintf(binstr,"%s%c",binstr,('!'<buf[j]&&buf[j]<='~')?buf[j]:'.');
}
printf("%s\n",binstr);
} else {
sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);
}
}
if (0!=(i%16)) {
k=16-(i%16);
for (j=0;j<k;j++) {
sprintf(binstr,"%s ",binstr);
}
sprintf(binstr,"%s ",binstr);
k=16-k;
for (j=i-k;j<i;j++) {
sprintf(binstr,"%s%c",binstr,('!'<buf[j]&&buf[j]<='~')?buf[j]:'.');
}
printf("%s\n",binstr);
}
}
uj5u.com熱心網友回復:
unicode編碼,format時, %s就必須對應wchar_t*
而不是char*
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/85621.html
標籤:基礎類
上一篇:win32繪制直線問題
