小编use*_*631的帖子

转到C中的二进制文件的某个点(使用fseek),然后从该位置读取(使用fread)

我想知道这是否是解决问题的最佳方法.

我知道二进制文件的特定偏移的值,其中我想要的信息被保持...我想要做的是跳转到偏移然后从该位置开始读取一定量的字节.

在使用谷歌之后,我得出结论,我最好的选择是使用fseek()移动到偏移的位置,然后使用fread()从该位置读取一定量的字节.

我在想这个是正确的吗?如果是这样,最好怎么做呢?即如何将两者结合在一起.

如果我不对,你会建议我做什么呢?

非常感谢您的帮助.

马特

编辑:

我遵循了关于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;
    }`
Run Code Online (Sandbox Code Playgroud)

所以我使用文件'comm_array2.img'并从文件中读取前10个字符.

但据我所知,这是从文件开始,我想从文件中的某个位置(偏移)

这更有意义吗?

编辑2:

看起来我有点昏暗,所有需要的东西(从我的尝试看起来似乎)是将fseek()放在我在上面的代码中的fread()之前,它寻求到那个位置和然后从那里读.

c binary fseek fread

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

binary ×1

c ×1

fread ×1

fseek ×1