我有一个只包含整数的二进制文件。我尝试使用以下代码读取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.我将文件视为十六进制,字节是应该的。
答案 0 :(得分:0)
我尝试在我创建的数据文件上运行您的程序,它运行正常。我怀疑您的数据文件格式不正确。
我在一个32位整数的小端处理器上运行。这是我的二进制文件的格式: