C语言中读取文件时怎么跳过某行

比如说0400000500001D6971这行,我想读了040000050000这些后,就跳到下行,怎么处理?... 比如说0400000500001D6971这行,我想读了040000050000这些后,就跳到下行,怎么处理? 展开
 我来答
tattackor
推荐于2016-08-13 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:895万
展开全部
  1. 可以使用fseek函数,直接偏移指针的指向位置到第二行。

    函数原型

    int fseek(FILE *stream, long offset, int fromwhere);函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置,函数返回一个非0值。

  2. 可以使用fgets函数,遇到需要跳过的行时,直接读取该行并弃舍该行字符值。

    函数原型
    char *fgets(char *buf, int bufsize, FILE *stream);
    参数
    *buf: 字符型指针,指向用来存储所得数据的地址。
    bufsize: 整型数据,指明存储数据的大小。
    *stream: 文件结构体指针,将要读取的文件流。

唐伯起
2011-10-17 · 超过47用户采纳过TA的回答
知道小有建树答主
回答量:97
采纳率:66%
帮助的人:65.5万
展开全部
你可以继续读取,不处理就是了,一直读到换行符 \n 。下一个在读就是下一行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1fc36d4
2011-10-17 · TA获得超过3131个赞
知道大有可为答主
回答量:1497
采纳率:100%
帮助的人:1831万
展开全部
其后字节数是固定的吗?是的话可以使用fseek(fp,N,1);就是从文件指针fp当前位置往后移动N字节的位置
追问
是HEX文件的,每行多少个数据是由前面数据域决定的
追答
那很好做啊
你先一个个字节读取,分别解析他们的含义,然后不需要读的(数据域解析得到-已近读取的数据个数),就用fseek来跳过。
其实我觉得你把后面这些也顺序读一遍,也不花多少时间,除非你这个HEX文件超级大。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式