gpt4 book ai didi

C++ fstream 正在写十六进制而不是字符串?

转载 作者:行者123 更新时间:2023-11-28 02:24:46 30 4
gpt4 key购买 nike

我正在尝试使用目前有效的 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;
}

问题是 MessageBox() 正确显示了数据...

更新

在出现异常错误后(使用 wfstream)我发现它给我的原因是因为 wszStatusText 的第一个值是 NULL。

最佳答案

您正在将宽字符 C 字符串传递到窄字符流中。没有很好的自动转换,所以你只能得到一个指针地址。

改用 std::wfstream

关于C++ fstream 正在写十六进制而不是字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31125804/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com