【问题标题】:How to convert Wchar_t* to const char* [duplicate]如何将 Wchar_t* 转换为 const char* [重复]
【发布时间】:2011-12-27 05:46:24
【问题描述】:

我是一个 c++ 新手,同时在 windows CE .net compact 应用程序上工作

在尝试将六进制数据写入文件时

CString dataBlock1;
dataBlock1 = "";

CString temp;
for(int i = 0; i < rLen; i++)
{
temp.Format(L"%02X ",rec[i]);
dataBlock1 += temp;

}

std::ofstream out(file);

我收到此错误无法将参数 1 从 wchar * 转换为 const char* on 同时使用下面的 write 函数将 hexa 数据写入文件

out.write(myReader.dataBlock1.GetBuffer(),myReader.dataBlock1.GetLength());

我们如何将 wchar_* 转换为 const char* 以使 write 函数工作。

谢谢。

【问题讨论】:

标签: c++ wchar


【解决方案1】:

可以使用wcstombs函数,参考here

【讨论】:

  • 这个似乎工作..谢谢萨克斯
  • win32有没有等价物?
【解决方案2】:

Windows 有一组类和函数,它们采用 wchar_t(存储为 UTF-16 的文本)和 char(存储在 ANSI 字符集中的文本)。如果您有指向 wchar_t 的指针,则需要使用接受 wchar_t 的适当类或函数,或者需要将数据转换为 ANSI 字符集。

在这种情况下,您需要 ofstream 的 wchar_t 变体 wofstream。

【讨论】:

    猜你喜欢
    • 2015-08-05
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 2012-08-04
    • 2018-01-07
    相关资源
    最近更新 更多