正如標題所示,我想知道將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