[英]C++ fstream is writing hex instead of string?
我正在嘗試使用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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.