的fread - 读取和跳过存储器的内容

问题描述:

如果我读文件:的fread - 读取和跳过存储器的内容

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

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

+2

fseek,你会找到。 – bmargulies 2013-05-06 21:23:34

使用fseek一个例子:

FILE * fptr; 

fptr = fopen("example.txt", "rb"); 
fread(contents, 1, 4, fptr); 
fseek(fptr, 4, SEEK_CUR); 
// ... 
fclose(fptr); 
+0

+1,但我会在这里使用'SEEK_CUR'而不是'SEEK_SET',这比试图追踪绝对位置要容易得多。 – Hasturkun 2013-05-07 09:21:46

+0

@Hasturkun你的评论是相关和有趣的,我已经更新了我的答案。 – 2013-05-07 09:30:08

我认为你正在寻找的功能是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);