c语言 文件 字符串添加,或替换,或修改

lsangame 2012-04-21 03:50:17
有a.txt内容为
a=1
x!=22
b=333
d=4444

现在要将要a.txt的内容改为
a=100
b=2
c=3
d=4444

即是:
1.在1后面添加00
2.删除第二行
3.删除第三行的后两个3
4.添加一行c=3

要求:
1.直接在原文件上进行修改,不能是用另一个文件来替换掉a.txt




这个直接在原文件中实现添加,我真写不出来代码,

我是以“rw+”的方式打开a.txt的,发现fputs()只能实现替换原字符,不能是添加字符(把后面的文字替换掉了),除非是在文件最后添加内容,在文件中间实现添加,我不知道怎么写代码???
因为fputs等一些函数好像只能替换掉当前文件指针所指的内容。


诚请教如何用c代码实现上面的编程???
...全文
806 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
template_cplus 2012-06-22
  • 打赏
  • 举报
回复
打错字 fseek
template_cplus 2012-06-22
  • 打赏
  • 举报
回复
用seek 去定位
FILE *fp;
char line[256],*pStr;
const char str1[] = "a=1";
const char str2[] = "a=100\n";
const char delete[]="\n";
//读取行 匹配
if(fgets(line, 256, fp))
{
pStr = strstr(line, str1);
}
//匹配成功 处理

strcpy(line, str1);
fssk(fp, -5, SEEK_CUR);//重定位
fputs(str2,fp)

正好今天有人问了个相似的问题
lsangame 2012-05-07
  • 打赏
  • 举报
回复
快没分了,还是要结帖。
lsangame 2012-04-25
  • 打赏
  • 举报
回复
求帮助
写给我自己 2012-04-21
  • 打赏
  • 举报
回复
这个····还是直接先读出来再修改来的简单点
AnYidan 2012-04-21
  • 打赏
  • 举报
回复
与你在纸上写字不同,全部更新简单
blingpro 2012-04-21
  • 打赏
  • 举报
回复
全部读出来,修改完再写回去,没有新创建文件吧?
cattycat 2012-04-21
  • 打赏
  • 举报
回复
没有这种功能,你只能先全部把文件读取进来,然后把文件全部给ftruncate清空再写。而且行其实就是\n字符而已。
lsangame 2012-04-21
  • 打赏
  • 举报
回复
应该能解决吧,望高手出现
evencoming 2012-04-21
  • 打赏
  • 举报
回复
放弃吧。我已经放弃了

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧