我创建了一个这样的配置文件
智能手机 = 50;
笔记本电脑 = 30;
watch = 20;
当程序运行时,我希望它将配置设置加载到下面列出的程序变量中。
int 智能手机、笔记本电脑、 watch ;
谢谢!
编辑: 我做了一个测试来解析配置文件中的文本。无论如何,我认为代码不好。有建议吗?
int 计数 = 0;
int 标志 = 0,更多 = 0;
int sphones = 0,笔记本电脑=0, watch =0;
`
if((fp = fopen("filecfg.txt","r")) != NULL){while(fgets(bufr,MAXLINE,fp)!=NULL){
` count +=1;`
if(flag==0){
for (int k = 0; bufr[k] != '\0'; k++){
if (isdigit(bufr[k])){
if(more==1){
sphones *= 10;
sphones += bufr[k] - '0';
} else {
sphones = bufr[k] - '0';
more=1;
}
}
}
flag = 1;
}else if(flag==1){
for (int k = 0; bufr[k] != '\0'; k++){
if (isdigit(bufr[k])){
if(more==1){
laptops *= 10;
laptops += bufr[k] - '0';
} else {
laptops = bufr[k] - '0';
more=1;
}
}
}
flag = 2;
}else if(flag==2){
for (int k = 0; bufr[k] != '\0'; k++){
if (isdigit(bufr[k])){
if(more==1){
watches *= 10;
watches += bufr[k] - '0';
} else {
watches = bufr[k] - '0';
more=1;
}
}
}
flag = 3;
}
最佳答案
这个答案是用 C# 编写的,并留在这里供后代使用。问题的原始标题和标签是 C# 而不是 C。
string config = File.ReadAllText("config_file");
var values = config.Split(";", StringSplitOptions.RemoveEmptyEntries);
var dict = new Dictionary<string, int>();
foreach(var value in values)
{
var pair = value.Split("=",StringSplitOptions.RemoveEmptyEntries);
var key = pair[0].Trim();
var val = Convert.ToInt32(pair[1].Trim());
dict[key] = val;
}
int smartphones = dict[nameof(smartphones)];
关于用 C 创建一个简单的配置文件和解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41318016/