将int转换为const wchar_t*
Convert int to const wchar_t*
正如标题所示,我想知道将int
转换为const wchar_t*
的最佳方法。实际上我想使用_tcscpy
函数
_tcscpy(m_reportFileName, myIntValue);
由于您正在使用C方法(我假设m_reportFileName
是原始 C wchar_t
数组),您可能要直接考虑 swprintf_s()
:
#include <stdio.h> // for swprintf_s, wprintf
int main()
{
int myIntValue = 20;
wchar_t m_reportFileName[256];
swprintf_s(m_reportFileName, L"%d", myIntValue);
wprintf(L"%sn", m_reportFileName);
}
在更现代的 c++方法中,您可以考虑使用std::wstring
代替原始的wchar_t
数组,并使用 std::to_wstring
进行转换。
In C++11
:
wstring value = to_wstring(100);
Pre- C++11
:
wostringstream wss;
wss << 100;
wstring value = wss.str();
这不是"转换"。这是一个两步的过程:
- 将号码格式化为字符串,使用宽字符。
- 使用呼叫字符串的地址
第一件事可以使用例如StringCbPrintf()
来完成,假设您正在构建启用宽字符。
当然,您可以选择将字符串直接格式化为m_reportFileName
,从而完全不需要进行复制。
如果使用wstring,可以考虑如下:
int ValInt = 20;
TCHAR szSize[20];
_stprintf(szSize, _T("%d"), ValInt);
wstring myWchar;
myWchar = (wstring)szSize;