4

我是 C++ 新手,所以请原谅我的无知。

_tprintf(_T("%4.4X-%4.4X"), HIWORD(dwVolumeSerialNumber), LOWORD(dwVolumeSerialNumber))

这打印出来例如:48AE-2022。

我需要将其存储在 str var 中以将其写入文本文件。我尝试了 to_string(),但它存储了数字 9,我猜是字符数。

4

1 回答 1

2
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::stringstd::wstring取决于您的项目 unicode 设置。

于 2015-07-16T07:13:36.997 回答