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

 2025-12-06 09:10:34    2572  

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;

}

...

....../* 其他类型需求处理 */

}


上海三甲医院挂号费全面涨价!
喜宝奶粉怎么样:从 99% 有机到六重营养,这几点告诉你值不值得选
友情链接