c ++将格式化的dword保存到str变量
c++ save formatted dword to str variable
我是 C++ 新手,请原谅我的无知。
_tprintf(_T("%4.4X-%4.4X"), HIWORD(dwVolumeSerialNumber), LOWORD(dwVolumeSerialNumber))
这会打印出例如:48AE-2022。
我需要将它存储在 str var 中以将其写入文本文件。我试过 to_string(),但它存储了数字 9,我猜它是字符数。
TCHAR szBuff[100];
_stprintf_s(szBuff, sizeof(szBuff)/sizeof(TCHAR), _T("%4.4X-%4.4X"), HIWORD(dwVolumeSerialNumber), LOWORD(dwVolumeSerialNumber));
或者您也可以采用 C++ 风格:
#include <sstream>
#include <string>
std::stringstream ss;
ss<<std::hex<<std::setfill('0')<<std::setw(4)<<HIWORD(dwVolumeSerialNumber)<<"-"<<std::setw(4)<<LOWORD(dwVolumeSerialNumber));
std::string sRes = ss.str();
在这种情况下,您应该使用 std::string
或 std::wstring
,具体取决于您的项目 unicode 设置。
我是 C++ 新手,请原谅我的无知。
_tprintf(_T("%4.4X-%4.4X"), HIWORD(dwVolumeSerialNumber), LOWORD(dwVolumeSerialNumber))
这会打印出例如:48AE-2022。
我需要将它存储在 str var 中以将其写入文本文件。我试过 to_string(),但它存储了数字 9,我猜它是字符数。
TCHAR szBuff[100];
_stprintf_s(szBuff, sizeof(szBuff)/sizeof(TCHAR), _T("%4.4X-%4.4X"), HIWORD(dwVolumeSerialNumber), LOWORD(dwVolumeSerialNumber));
或者您也可以采用 C++ 风格:
#include <sstream>
#include <string>
std::stringstream ss;
ss<<std::hex<<std::setfill('0')<<std::setw(4)<<HIWORD(dwVolumeSerialNumber)<<"-"<<std::setw(4)<<LOWORD(dwVolumeSerialNumber));
std::string sRes = ss.str();
在这种情况下,您应该使用 std::string
或 std::wstring
,具体取决于您的项目 unicode 设置。