C++ C++;fstream正在写入十六进制而不是字符串?
我正在尝试使用C++ C++;fstream正在写入十六进制而不是字符串?,c++,fstream,C++,Fstream,我正在尝试使用URLDownloadToFile()下载一个文件,该文件到目前为止仍在运行,但是我在使用回调函数和将回调输出wszStatusText写入文件时遇到了问题 下面是给出问题的函数: HRESULT DownloadStatus::OnProgress(ULONG ulProgress, ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR wszStatusText) { fstream myfile; myfile.op
URLDownloadToFile()
下载一个文件,该文件到目前为止仍在运行,但是我在使用回调函数和将回调输出wszStatusText写入文件时遇到了问题
下面是给出问题的函数:
HRESULT DownloadStatus::OnProgress(ULONG ulProgress, ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR wszStatusText)
{
fstream myfile;
myfile.open("file.txt", ios::app);
// this prints hex
myfile << " StatusText: " << wszStatusText;
myfile.close();
// this prints the string properly
MessageBox(NULL, wszStatusText, L"test", MB_OK);
return S_OK;
}
HRESULT下载状态::OnProgress(ULONG ulProgress、ULONG ulProgressMax、ULONG ulStatusCode、LPCWSTR wszStatusText)
{
fstream-myfile;
打开(“file.txt”,ios::app);
//这是十六进制的
myfile您正在将一个宽字符的C字符串传递到一个窄字符流中。没有很好的自动转换,所以您只需要得到一个指针地址
改为使用std::wfstream
。使用std::wfstream
。好的,我已更改为wfstream myfile
,(其他所有内容都相同),现在我在运行(调试)时收到一个未处理的异常它…我在这里遗漏了什么吗?@user5062925:这是一个完全不同的问题。听起来你真的需要一位导师来帮助你解决这个问题。有没有实验室助理或可以与之交谈的人?不幸的是,没有,我完全靠我自己…我尝试过处理wfstream
,它确实有效,但wszStatusText不起作用出于某种原因,为了澄清我的问题,我发布了完整的代码。