如下函数所示:
void FileParse::PrintAddressInfoByCalcIndex(int nIndex)
{
int nTmpVar;
char cStr[100];
//!取出g_s32L2LogTypeBuf变量的地址
if(strLogBufVirtual.empty())
{
cout << "变量g_s32L2LogTypeBuf未找到,请选择其它操作." << endl;
return;
}
//!16进制字符串转10进制数
sscanf(strLogBufVirtual.c_str(), "%x", &nTmpVar);
//!按照索引值进行加操作
nTmpVar += RECORD_UNIT_SIZE*nIndex;
//!10进制数转16进制字符串
sprintf(cStr, CONVER_10_TO_16, nTmpVar);
//!打印输出
string strOutput(cStr);
cout << cStr << endl;
}
其中,#define CONVER_10_TO_16 “0x%x”