gpt4 book ai didi

c - fread() 没有从二进制文件中读取正确的值

转载 作者:太空宇宙 更新时间:2023-11-04 04:42:24 24 4
gpt4 key购买 nike

我有一个只包含整数的二进制文件。我尝试使用以下代码读取 10 个整数:

#include <stdio.h>
#include <stdlib.h>


int main(int argc, char **argv){

int* data=(int*)malloc(10*sizeof(int));

FILE *fp=fopen("data.bin","rb");
if(fp==NULL){printf("Error opening the file data.bin\n");}

size_t w=fread(data,sizeof(int),10,fp);
if(w!=10){printf("Error reading the data from data.bin\n");}
fclose(fp);


printf("%i",data[0]);
}

问题是读取的值不是预期的。例如,第一个整数是 0,但 printf 命令打印 86183936。我将文件视为十六进制,字节是它们应该的样子。

最佳答案

我尝试在我创建的数据文件上运行您的程序,它工作正常。我怀疑您的数据文件格式不正确。

我在一个带有 32 位整数的小端处理器上运行。这是我的二进制文件的格式: enter image description here

关于c - fread() 没有从二进制文件中读取正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25017157/

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