将int转换为const wchar_t*

Convert int to const wchar_t*

本文关键字:wchar const int 转换      更新时间:2023-10-16

正如标题所示,我想知道将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();

这不是"转换"。这是一个两步的过程:

  1. 将号码格式化为字符串,使用宽字符。
  2. 使用呼叫字符串的地址

第一件事可以使用例如StringCbPrintf()来完成,假设您正在构建启用宽字符。

当然,您可以选择将字符串直接格式化为m_reportFileName,从而完全不需要进行复制。

如果使用wstring,可以考虑如下:

  int ValInt = 20;
  TCHAR szSize[20];
_stprintf(szSize, _T("%d"), ValInt);
wstring myWchar;
myWchar = (wstring)szSize;