目录
1、用CString的方式:
2、用 string 方式
前言:
有些字符串直接打印出来是乱码,显示不出来。于是要转为十六进制的字符,再打印出来。
C语言字符串转换为16进制:自定义转换函数
1、用CString的方式:
#include <CString >void char2HexString(const char* pszData, unsigned int nSize)
{CString strLog;for (int nIndex = 0; nIndex < nSize; nIndex++){CString str;str.Format(_T("%02X"), pszData[nIndex] & 0xFF);strLog += str;}// 输出 strLog
}
2、用 string 方式
std::string format(const char* pFmt, ...)
{if (NULL == pFmt)return "";#define FORMAT_MSG_BUFFER_SIZE (90000)char szBuffer[FORMAT_MSG_BUFFER_SIZE + 1] = { 0 };va_list args;va_start(args, pFmt);vsnprintf(szBuffer, FORMAT_MSG_BUFFER_SIZE, pFmt, args);va_end(args);std::string strRet = szBuffer;return strRet;
}void char2HexString(const char* pszData, unsigned int nSize)
{string strResult;for (int nIndex = 0; nIndex < nSize; nIndex++){string strTemp = format("%02X ", pszData[nIndex]);strResult += strTemp;}// 输出 strResult
}