3

如果我正在读取文件:

fptr = fopen(read_path, "rb");
fread(contents, size_in_bytes, count, fptr);

假设我想读取 4 个字节,然后跳过 4 个字节,然后读取 4 个,依此类推。我怎样才能做到这一点?具体来说,我将如何操作/推进fptr

4

3 回答 3

7

使用示例fseek

FILE * fptr;

fptr = fopen("example.txt", "rb");
fread(contents, 1, 4, fptr);
fseek(fptr, 4, SEEK_CUR);
// ...
fclose(fptr);
于 2013-05-06T21:15:33.413 回答
3

我认为您正在寻找的功能是fseek

于 2013-05-06T21:12:09.373 回答
2

如果要跳过的数量很小,您可以随时将其读入虚拟对象并丢弃:

char contents[SOME_SIZE];
char dummy[4];

fptr = fopen(read_path, "rb");
fread(contents, 4, 1, fptr);
fread(dummy, 4, 1, fptr);
fread(contents+4, 4, count-1, fptr);
于 2013-05-06T21:22:24.760 回答