从二进制文件中获取长整型



我有一个二进制文件,其中 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 数组的每个元素中,但后来我不知道如何将其转换为长 int 类型(我已经设法做到了每个元素的元素,但不是我需要的(。你可以帮我吗?谢谢!

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

printf ("%d", val);

而不是

printf ("%ld", val(;

LD用于长型...

最新更新