把嘎嘎 2021-06-02 11:52 采纳率: 48.1%
浏览 129
已结题

C语言文件io操作,从文件中间写入

有一个txt文件,内容:

123456789

 

现在想将45替换成ab,有办法对这个txt文件直接操作吗?

  • 写回答

3条回答 默认 最新

  • bostonAlen 2021-06-02 15:19
    关注
    如果只想修改文件一部分。
    可以使用函数int fseek( FILE *stream, long offset, int origin );来定位你的文件指针。
    文件指针的位置决定你读写文件的起始位置。
    其中参数origin :表示从哪里开始偏移,值有:
    SEEK_SET: 文件开头
    SEEK_CUR: 当前位置
    SEEK_END: 文件结尾
    参数offset:表示偏移的字节数,正数表示正向偏移,负数表示负向偏移。
    比如
    你先读取文件内容,同时做判断,找到你要改的内容时,调用函数
    fseek(fp,10L,SEEK_CUR);把文件指针移动到离当前指针位置10个字节的地方(我们假设当前位置偏移10个字节就是你要修改的起始位置);
    这样你之后的读写都是从这个位置开始。
    不过要注意的是,你从这位置开始写新的内容,可以覆盖原内容,所以如果新的内容比你想覆盖的内容长的话,会把后面你想保留的内容也覆盖掉。
    这种思路,你想要实现修改指定内容,还需要把修改内容之后的数据也读出来备份,再一起写进去。
    所以最简单,还是直接生成新的文件替换原文件。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月9日

悬赏问题

  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建