gpt4 book ai didi

c - InternetReadFile() 破坏 C 中的下载

转载 作者:太空宇宙 更新时间:2023-11-04 00:56:02 25 4
gpt4 key购买 nike

我可以下载文本文档(.html、.txt 等),但无法下载图像或 exe。我很确定这是因为我使用的是 char,而这些文件是二进制的。我知道在 C# 中我会使用一个字节。但是在这种情况下我会使用什么数据类型呢?

    char buffer[1];
DWORD dwRead;
FILE * pFile;
pFile = fopen(file,"w");
while (InternetReadFile(hRequest, buffer, 1, &dwRead))
{
if(dwRead != 1) break;
fprintf(pFile,"%s",buffer);
}
fclose(pFile);

最佳答案

您的问题不在于 char,而是将 fprintf 与 %s 一起使用。 char 可以保存所有字节值。当二进制数据 block 中有\0 (NULL) 字符时,fprintf 将在此时停止输出数据。

在这种情况下你想使用fwrite

在 Windows 中,打开二进制文件时使用 b 说明符也很重要。

关于c - InternetReadFile() 破坏 C 中的下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2853895/

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