char ch;
nLength = strAscii.GetLength();
for (i = 0; i < nLength; i += 2){
strBuffer = strAscii.Mid(i, 2);
sscanf(strBuffer, "%X", &ch);
strBuffer.Format("%c", ch);
strOutput += strBuffer;
}
函数原形: int __cdecl sscanf(const char *, const char *, …);
这里之所以出错,是因为往一个 char 类型的 变量中 写入一个 int 型的变量,而 char 只占一位, 而往一位里写四位的内容, 不报错才怪了
有两种改法.
1: %x 改为 %c
2: char ch 改为 char ch[4]
char ch[4];
nLength = strAscii.GetLength();
for (INT i = 0; i < nLength; i += 2){
strBuffer = strAscii.Mid(i, 2);
sscanf(strBuffer, "%X", &ch);
strBuffer.Format("%s", ch);
strOutput += strBuffer;
}