我有一个二进制文件,其中64位块是我需要的数字。如果我尝试通过以下方式阅读它:
FILE *ptr;
ptr = fopen("HH", "rb"); //r for read, b for binary
ulong val;
fseek(ptr, 0, SEEK_SET);
fread(&val, 8, 1, ptr);
它不起作用(它给随机值总是不同的),但是如果我说他要获取直到3个字节(就我而言,对于这三个字节我拥有正确的值-几乎没有结束编码,那是可行的),正确的那一个)。我也尝试过使用char类型,它将每个字节的正确值放入char数组的每个元素中,但是后来我不知道如何将其转换为long int类型(我已经设法做到了)个元素,但不是我需要的)。你能帮助我吗?谢谢!
我已经理解了错误!这只是printf的问题,数据获取良好。我说:
printf ("%d", val);
代替
printf(“%ld”,val);
ld是长类型的地方...