正如标题所示,我想知道将int
转换为const wchar_t*
的最佳方法。 其实我想使用的功能_tcscpy
将int转换为常量wchar_t *
_tcscpy(m_reportFileName, myIntValue);
正如标题所示,我想知道将int
转换为const wchar_t*
的最佳方法。 其实我想使用的功能_tcscpy
将int转换为常量wchar_t *
_tcscpy(m_reportFileName, myIntValue);
由于您使用的是Ç方法(我假设m_reportFileName
是原料Ç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"%s\n", m_reportFileName);
}
在更现代的C++方法,您可以考虑使用std::wstring
而不是原始wchar_t
数组和std::to_wstring
进行转换。
这不是一个“转换”。这是一个两步过程:
首先可以使用例如StringCbPrintf()
,假设您正在构建启用宽字符。
当然,您可以选择将字符串直接格式化为m_reportFileName
,而不需要完全复制副本。
在C++11
:
wstring value = to_wstring(100);
预C++11
:
wostringtream wss;
wss << 100;
wstring value = wss.str();
普通类型转换?但是你记得“最后一个”字符是零,或者你进入未定义行为的范围。这意味着你的'int'只能存储一个字符('int'在Windows上是32位,'wchar_t'是16位)。 – 2013-02-27 10:19:30
我认为(const wchar_t *)variable_name;应该管用。 – haitaka 2013-02-27 10:19:36
“转换”是什么意思?谨慎举一个例子? – 2013-02-27 10:19:48