如果我要读取一个文件:
fptr = fopen(read_path, "rb");
fread(contents, size_in_bytes, count, fptr);
假设我想读取4个字节,然后跳过4个字节,然后再读取4个字节,以此类推。我该如何做?具体来说,我将如何操作/提前fptr
?
使用fseek
的示例:
FILE * fptr;
fptr = fopen("example.txt", "rb");
fread(contents, 1, 4, fptr);
fseek(fptr, 4, SEEK_CUR);
// ...
fclose(fptr);
SEEK_CUR
而不是SEEK_SET
,这比尝试跟踪绝对位置更容易。 - Hasturkun如果要跳过的量很小,你可以将其读入一个虚拟变量中并处理掉:
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);