从二进制文件获取长整数

问题描述 投票:0回答:1

我有一个二进制文件,其中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类型(我已经设法做到了)个元素,但不是我需要的)。你能帮助我吗?谢谢!

casting binary fread unsigned-long-long-int
1个回答
0
投票

我已经理解了错误!这只是printf的问题,数据获取良好。我说:

printf ("%d", val);

代替

printf(“%ld”,val);

ld是长类型的地方...

© www.soinside.com 2019 - 2024. All rights reserved.