gpt4 book ai didi

c - 使用C读取二进制文件的问题

转载 作者:行者123 更新时间:2023-12-04 06:23:24 26 4
gpt4 key购买 nike

我在用 C 读取二进制文件时遇到问题,问题是:当我读取文件时,它不会读取完整的文件,而是留下了上次的一些数据......
用于读取文件的代码如下:

            FILE *file;             
unsigned long fileLen;

//Open file
file = fopen("ASELogo.png", "rb");
if (!file)
{
fprintf(stderr, "Unable to open file %s", name);
}

fseek(file, 0, SEEK_END);
fileLen=ftell(file);
fseek(file, 0, SEEK_SET);

buffer=(char *)malloc((fileLen+1)*sizeof(unsigned char));

fread(buffer, fileLen, 1, file);

for(int i = 0;i < fileLen;++i)
printf("%c", ((char *)buffer)[i]);

当我打印文件时,它不会打印文件的全部内容......

实际文件内容是:

âPNG

最佳答案

您将字节打印为字符。如果它们恰好是 ASCII 范围,那很好,但是您最终会打印控制字符等。

尝试将字符格式化为字节(例如 0xFF 和 0x12),看看是否有帮助。

关于c - 使用C读取二进制文件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6290876/

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