c 语言实现修改文件中的内容(很多情况下都可以这么类似处理)

c语言修改文件内容处理思路,没有shell或者python那么方便

  • 1.打开原文件和临时备份文件
  • 2.从原文件中读取一行,写入临时文件中
  • 3.如果是需要修改的地方,在内存中解析修改后写入临时文件
  • 4.修改完成,删除原文件
  • 5.重命名临时文件为原文件
    下面代码实现修改a.cfg中一行中的一个或者多个内容,当然,每个人处理的文件不同,需求也不同,但总的思路一致。
    区别和修改最多的也就是字符串处理的地方

部分代码
代码中部分变量未展示定义部分.
编码注意: 尽量不要出现魔鬼数字
指针非空判断,NULL在等号前(变量和常量比较类似,变量在前)
打开的文件句柄在返回前一定记得释放

fp = fopen(szFileName, "r+");			/* r+打开原文件, 不存在返回NULL */
if(NULL == fp)
{
	printf("File does not exist.\n");
	return -1;
}
fpBak = fopen(szFileNameBak, "w+");		/* 若文件存在,则清空文件,如果文件不存在,创建 */
if(NULL == fpBak)
{
	fclose(fp);
	return -1;
}

逐行读取一行,直到文件尾

while(!feof(fp))
{
	bzero(szFileLine, MY_STRING_LEN_1024);
	if (NULL == fgets(szFileLine, MY_STRING_LEN_1024, fp))
	{
		continue;		/* 如果获取失败,结束本次循环 */
	}
	if(0 == strncmp(szFileLine, “RtDirName“,  sizeof(RtDirName) - 1))
	{
		/* 找到指定部分,写入备份文件 */
		if(-1 == fprintf(fpBak, "%s", szFileLine))
		{
			fclose(fp);
			fclose(fpBak);
			unlink(szFileNameBak);
			return -1;
		}
		continue;
	}
	...
	....../* 其他类型需求处理 */
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值