可以使用fseek函数,直接偏移指针的指向位置到第二行。
函数原型
int fseek(FILE *stream, long offset, int fromwhere);函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置,函数返回一个非0值。
可以使用fgets函数,遇到需要跳过的行时,直接读取该行并弃舍该行字符值。
函数原型
char *fgets(char *buf, int bufsize, FILE *stream);
参数
*buf: 字符型指针,指向用来存储所得数据的地址。
bufsize: 整型数据,指明存储数据的大小。
*stream: 文件结构体指针,将要读取的文件流。
是HEX文件的,每行多少个数据是由前面数据域决定的
追答那很好做啊
你先一个个字节读取,分别解析他们的含义,然后不需要读的(数据域解析得到-已近读取的数据个数),就用fseek来跳过。
其实我觉得你把后面这些也顺序读一遍,也不花多少时间,除非你这个HEX文件超级大。