Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert Wchar_t* to const char* [duplicate]

Tags:

c++

wchar

I am a kind of new for c++ , while working on the windows CE .net compact application

while trying to write hexa datas to a file

CString dataBlock1;
dataBlock1 = "";

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

}

std::ofstream out(file);

I am getting this error can not convert parameter 1 from wchar * to const char* on while using the below write function to write hexa datas to a file

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

how can we convert wchar_* to const char* to make the write function work.

Thanks.

like image 523
saroll Avatar asked Nov 11 '11 18:11

saroll


2 Answers

You can use the wcstombs function, reference here.

like image 86
az4dan Avatar answered Nov 07 '22 09:11

az4dan


Windows has a set of classes and functions that take wchar_t, which is text stored as UTF-16, and char, which is text stored in your ANSI character set. If you have pointer to wchar_t you either need to use an appropriate class or function that accepts wchar_t, or you need to convert the data to your ANSI character set.

In this case, you want the wchar_t variant of ofstream, wofstream.

like image 1
Scott Conger Avatar answered Nov 07 '22 08:11

Scott Conger