Подтвердить что ты не робот

Преобразование int в const wchar_t *

Как указано в заголовке, я хочу знать лучший способ преобразования int в const wchar_t*. на самом деле я хочу использовать функцию _tcscpy

_tcscpy(m_reportFileName, myIntValue);
4b9b3361

Ответ 1

Поскольку вы используете подход 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"%s\n", m_reportFileName);
}

В более современном С++-подходе вы можете использовать std::wstring вместо массива raw wchar_t и std::to_wstring для преобразования.

Ответ 2

Это не "преобразование". Это двухэтапный процесс:

  • Отформатируйте число в строку, используя широкие символы.
  • Используйте адрес строки в вызове.

Первое, что может быть достигнуто с использованием, например, StringCbPrintf(), предполагая, что вы создаете с широкими символами.

Конечно, вы можете выбрать форматирование строки прямо в m_reportFileName, удалив необходимость полностью выполнить копию.

Ответ 3

В C++11:

wstring value = to_wstring(100);

Пред- C++11:

wostringtream wss;
wss << 100;
wstring value = wss.str();