我在想这是否是解决我的问题的最佳方式。
我知道二进制文件中特定偏移量的值,这些值包含我想要的信息......我想要偏移到这些偏移量,然后从该位置开始读取一定数量的字节。
使用谷歌之后,我得出结论,最好使用fseek()将偏移量移动到指定位置,然后使用fread()从该位置读取一定数量的字节。
我的想法正确吗?如果是,最好如何处理?即如何将这两个函数结合起来使用。
如果不正确,您有什么其他建议?
非常感谢您的帮助。
Matt
编辑:
我按照教程学习了fread()并进行了调整,代码如下:
我知道二进制文件中特定偏移量的值,这些值包含我想要的信息......我想要偏移到这些偏移量,然后从该位置开始读取一定数量的字节。
使用谷歌之后,我得出结论,最好使用fseek()将偏移量移动到指定位置,然后使用fread()从该位置读取一定数量的字节。
我的想法正确吗?如果是,最好如何处理?即如何将这两个函数结合起来使用。
如果不正确,您有什么其他建议?
非常感谢您的帮助。
Matt
编辑:
我按照教程学习了fread()并进行了调整,代码如下:
`#include <stdio.h>
int main()
{
FILE *f;
char buffer[11];
if (f = fopen("comm_array2.img", "rt"))
{
fread(buffer, 1, 10, f);
buffer[10] = 0;
fclose(f);
printf("first 10 characters of the file:\n%s\n", buffer);
}
return 0;
}`
所以我使用了文件'comm_array2.img'并读取了文件中的前10个字符。
但是从我的理解来看,这是从文件开头开始的,我想从文件中的某个位置(偏移量)开始。
这样说是否更清晰了?
第二次编辑:
看起来我有些愚笨,而且似乎唯一需要的就是将fseek()放在上面代码中的fread()之前,它会定位到该位置,然后从那里读取。
pread
。请告诉我们您想要什么以及您尝试过什么。 - pilcrow