Jak wskazuje tytuł Chcę poznać najlepszy sposób przekonwertowania int
na const wchar_t*
. w rzeczywistości chcę użyć _tcscpy
funkcjaKonwertuj int na const wchar_t *
_tcscpy(m_reportFileName, myIntValue);
Jak wskazuje tytuł Chcę poznać najlepszy sposób przekonwertowania int
na const wchar_t*
. w rzeczywistości chcę użyć _tcscpy
funkcjaKonwertuj int na const wchar_t *
_tcscpy(m_reportFileName, myIntValue);
Ponieważ używasz podejście C (jestem zakładając, że m_reportFileName
jest surowy C wchar_t
tablica), można rozważyć tylko swprintf_s()
bezpośrednio:
#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);
}
w A bardziej nowoczesny C++ podejście, możesz rozważyć użycie std::wstring
zamiast surowego wchar_t
tablicy i std::to_wstring
dla konwersji.
to nie jest „konwersja”. Jest to proces dwuetapowy:
Pierwszą rzecz można osiągnąć za pomocą np. StringCbPrintf()
, zakładając, że budujesz z włączonymi szerokimi znakami.
Oczywiście można również sformatować ciąg bezpośrednio pod numerem m_reportFileName
, co eliminuje konieczność wykonywania kopii.
W C++11
:
wstring value = to_wstring(100);
Pre- C++11
:
wostringtream wss;
wss << 100;
wstring value = wss.str();
Normal typecast? Ale pamiętasz, że "ostatnia" postać ma zero, albo wkraczasz na terytorium niezdefiniowanego zachowania. Oznacza to, że twój 'int' może przechowywać tylko jeden znak (' int' to 32 bity w systemie Windows, a 'wchar_t' to 16 bitów). –
Myślę (const wchar_t *) variable_name; powinno działać. – haitaka
Co dokładnie rozumiesz przez "konwersję"? Chcesz podać przykład? –