C语言对txt文件中某一行的某几个字符修改 和 fgets()在vs2013怎么用

c347840227 2015-06-15 08:54:40
本人c语言刚入门,诚心请教各位大神帮帮忙!
我遇到的问题是,
怎样用C语言实现txt文件中某一行的某几个字符修改,
比如
文件内容是
ABCD#1234*1
EFGH#5678*2
IJKL#9876*3
现在读取到
第一行的 ‘ # ’,
根据用户的输入判断后,我要把第一行中的‘1234’,修改成 ‘5678’,

有什么简单的方法?如果有,说说思路,和要用到的相关函数既可,不用详细代码,

还有就是,fgets()在vs2013怎么用?我能编译通过,但是一运行,就会被终止!
如果你们试了不会被终止,那就把你们的代码简单的写出来,我自己比对比对。
...全文
1163 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2015-06-22
  • 打赏
  • 举报
回复
推荐一个博客可以参考一下http://blog.csdn.net/mg0832058/article/details/5890688
苏叔叔 2015-06-17
  • 打赏
  • 举报
回复

int main(void)
{
	FILE *f1, *f2;
	f1 = fopen("1.txt", "r");
	f2 = fopen("2.txt", "w");
	char buf[256];
	char *p;
	while (1)
	{
		if (NULL == fgets(buf, 255, f1)) break;
		if (p = strstr(buf, "1234"))
		{
			memmove(p + strlen("5678"), p + strlen("1234"), strlen(p + strlen("1234")) + 1);
			strncpy(p, "5678", strlen("5678"));
		}
		fprintf(f2, "%s", buf);
	}
	_fcloseall();
	return 0;
}
赵4老师 2015-06-17
  • 打赏
  • 举报
回复
所谓修改删除文件a某位置的内容,其实是读打开文件a,再将‘a中修改删除位置之前的内容+修改删除的内容+a中修改删除位置之后的内容’保存到文件b,关闭文件a,删除文件a,将文件b改名为与之前文件a相同的名字,仅此而已。
ForestDB 2015-06-15
  • 打赏
  • 举报
回复
把文件读入内存 对内存进行操作 将操作结果写会文件 基本上以下函数应该要会用 fopen fread/fscanf fwrite/fprintf fclose 字符串相关的函数要会用 指针操作要会

70,022

社区成员

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

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