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

🏛️ best365官网登陆 ⏳ 2025-07-20 05:57:24 👤 admin 👁️ 5927 💎 792
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;

}

...

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

}

相关掠夺

365游戏厅网页登录
全量系统测试周期受哪些因素影响,一般需要多久完成?

全量系统测试周期受哪些因素影响,一般需要多久完成?

🗓️ 07-13 👁️ 3086
best365官网登陆
正常人突然不会说话了怎么回事

正常人突然不会说话了怎么回事

🗓️ 07-17 👁️ 5874
best365官网登陆
荆棘王座势力攻略

荆棘王座势力攻略

🗓️ 07-04 👁️ 2362