C语言中读取文件时怎么跳过某行
比如说0400000500001D6971这行,我想读了040000050000这些后,就跳到下行,怎么处理?...
比如说0400000500001D6971这行,我想读了040000050000这些后,就跳到下行,怎么处理?
展开
3个回答
展开全部
可以使用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: 文件结构体指针,将要读取的文件流。
展开全部
你可以继续读取,不处理就是了,一直读到换行符 \n 。下一个在读就是下一行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其后字节数是固定的吗?是的话可以使用fseek(fp,N,1);就是从文件指针fp当前位置往后移动N字节的位置
追问
是HEX文件的,每行多少个数据是由前面数据域决定的
追答
那很好做啊
你先一个个字节读取,分别解析他们的含义,然后不需要读的(数据域解析得到-已近读取的数据个数),就用fseek来跳过。
其实我觉得你把后面这些也顺序读一遍,也不花多少时间,除非你这个HEX文件超级大。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询