如何将Wchar_t *转换为const char *

时间:2011-11-11 18:07:02

标签: c++ wchar

在使用Windows CE .net压缩应用程序

时,我是c ++的新手

尝试将hexa数据写入文件

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 * 使用以下写入功能将六进制数据写入文件

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

我们如何将wchar_ *转换为const char *以使写入功能起作用。

感谢。

2 个答案:

答案 0 :(得分:5)

您可以使用wcstombs功能,参考here

答案 1 :(得分:1)

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

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