标准C语言,修改配置文件

标准C语言,修改配置文件,第1张

在1.1后面带空格

只要该行数据的最大长度确定,在你这行数据确定后,不足橡唯部分全部用空格覆盖。

比如唤闹ver=1.0.2现在的长度是9个字符,如果我确定这行内容梁链培不会超过12个字符,那后面的内容我可以全用空格覆盖,最后只要加个回车即可。

不知道你所谓的以后改不方便指什么

这个问题和c语言关系不是太大。保存和加载配置的方式有很多,看你的平台处理能力以及配置复杂度了,如果是很复杂的情况,可以使用sqlite数据库;一般也可以用json/xml/ini等通用格式;简单点可以直接用文本文件,或者二进制文件保存自定义格式。

前面两种方式可以用相关的库处理,后面这种就自己写了,方便调试的话,最好是用文本方手缺式保存,这样比较容易检查。最直接毕宴辩的方式就是用类似KEY=VALUE这样的配对,比如:username=abc。每一个配置之间的分隔符可以直接用回车,这样方便查看最终保存的结果。 *** 作的话祥辩,基本上就是定义一个配置的数据结构,然后填入所有配置数据,再挨个写进文件。读取的时候,就按KEY来解析VALUE,然后填入相应的位置。

#include <stdio.h>

#include <string.h>

#define MAX_BUF 20

#define SERVER "localhost"

#define CONFIG_FILE "1.conf"

bool SetAuthServer(char* strServerAdd)

{

char buf[MAX_BUF], tempBuf[MAX_BUF]

memset(buf, 0, MAX_BUF)

memset(tempBuf, 0, MAX_BUF)

FILE *pF = fopen(CONFIG_FILE, "r")

if(!pF)

{

printf("打开文件失败!\芦汪n")

return false

}

fread(buf, MAX_BUF, 1, pF)

if(!feof(pF))

{

printf("读取不完整,请把MAX_BUF设置为大一点, 当前大小为: %d\n", MAX_BUF)

fclose(pF)

return false

}

fclose(pF)

char *lpPos = buf

char *lpNewPos = buf

while(lpNewPos = strstr(lpPos, SERVER))

{

strncpy(tempBuf+strlen(tempBuf), lpPos, lpNewPos-lpPos)

strcat(tempBuf, strServerAdd)

lpPos = lpNewPos + strlen(SERVER)

}

strcat(tempBuf, lpPos)

pF = fopen(CONFIG_FILE, "w")

if(!pF)

{

printf("打开文件拆誉失败!\n")

return false

}

fwrite(tempBuf, strlen(tempBuf), 1, pF)

fclose(pF)

return true

}

void main()

{

char buf[20]

printf("请输入一个字符串来修改服务旅哗段器配置: ")

scanf("%s", buf)

if(SetAuthServer(buf) == true)

printf("修改成功!\n")

else

printf("修改失败!\n")

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12283974.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存