fread – 读取和跳过内存内容

如果我正在阅读一个文件:

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); 

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

如果要跳过的金额很小,你可以随时把它读成一个虚拟的并处理掉:

 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);