c++将格式化的dword保存到str变量

标签 c++ dword

我是 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();

在这种情况下,您应该根据项目的 unicode 设置使用 std::stringstd::wstring

关于c++将格式化的dword保存到str变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31447238/

相关文章:

C++11 初始化列表失败 - 但仅在长度为 2 的列表上

c++ - 如何使用 cppunit 显示测试方法名称

c++ - 如何将 DWORDLONG 转换为 char *?

qt - 将 DWORD 值转换为 QString

C++ 指针作为 DWORD

c++ - (DWORD)、*(DWORD*) 和 (DWORD*) 之间有什么区别?

c++ - 错误 : ‘logFileObj’ does not name a type

c++ - unique_ptr 与 vector : error: call to implicitly-deleted copy constructor of XXX

c++ - 阶梯式 C++ 虚拟继承

c - C中的点WORD类型是什么?