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;
}
...
....../* 其他类型需求处理 */
}
世界杯直播频道 2025-05-14 19:06:29
男篮世界杯中国 2025-06-23 14:40:01
男篮世界杯中国 2025-05-26 15:27:29
男篮世界杯中国 2025-06-23 08:10:02
世界杯直播频道 2025-11-04 14:37:37
丹麦世界杯阵容 2025-06-09 15:27:17
丹麦世界杯阵容 2025-05-18 20:06:49
丹麦世界杯阵容 2025-06-21 20:52:47
世界杯直播频道 2025-10-11 06:38:43
世界杯直播频道 2025-06-24 16:48:41