Qiyiguo627884 2023-03-12 18:00 采纳率: 70%
浏览 40
已结题

关于#c语言#的问题:如果运行if语句时(已知if语句在整个while过程肯定只会运行一次),我想记录此时的文件位置(至于落后或超前一个读取长度,后续可以通过fseek函数调整),以便后续使用方便

img


首先说明,fp文件指针读取完整个文件后,里面的if语句肯定只运行一遍

我想的是fp作为文件指针,来读取文件中的数据,当执行if语句时,用fp1用来记录位置,方便后续操作,这是我想的
但是根据以下的运行结果

img


我有点不懂,移动fp1怎么还会和fp文件指针有牵连呢?

希望细讲,
那么,如果运行if语句时(已知if语句在整个while过程肯定只会运行一次),我想记录此时的文件位置(至于落后或超前一个读取长度,这些都无所谓,后续可以通过fseek函数调整),以便后续使用方便(即直接用fread函数,通过fp1来作为定位文件指针位置,直接读取特定位置上的数据),我应该具体怎么操作来记录呢?

  • 写回答

2条回答 默认 最新

  • 滴水不穿石 2023-03-12 21:08
    关注

    记录文件位置如果有多处可以建立全局的long arr[N]数组来保存每次的偏移量,
    后续调用可以从数组中读入对应的偏移量,用函数
    fseek(fp,arr[i],SEEK_SET);从需要的地方读取。

    如果是宽字符版或超大文件
    可以用下面函数设置,位置信息会存到fpos_t 指针所指的内存中
    int fgetpos(FILE *, fpos_t * );获取位置
    int fsetpos(FILE *,fpos_t *);设置位置

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月22日
  • 已采纳回答 3月14日
  • 修改了问题 3月12日
  • 创建了问题 3月12日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改