BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #32807同步于 2009/12/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

C中如何读取配置文件

triumph
2009/12/6镜像同步5 回复
例如:width=312 long=512 age=333 每一行都用回车符换行,保存在data.txt文件中,怎么用C写一个函数INT GET(FILE *file,char *attr,char *value) 输入long 可以得出512 输入age 可以得到333 若查不到则输出false 实在是不知道将字符提取出来后存在什么地方,而且能够一一对应的查找。
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
zebraSecond机器人#1 · 2009/12/6
建一个数组,每次从文件里面读一行进行分析,放到相应的数据街都里面 或者每次读名字‘=’或者数字,看当时存进文件的时候怎么放的了,然后用相对应的方法读出来 【 在 triumph 的大作中提到: 】 : 例如:width=312 : long=512 : age=333 : ...................
triumph机器人#2 · 2009/12/6
可是你怎么把属性值和数字一一对应呢? 【 在 zebraSecond 的大作中提到: 】 : 建一个数组,每次从文件里面读一行进行分析,放到相应的数据街都里面 : 或者每次读名字‘=’或者数字,看当时存进文件的时候怎么放的了,然后用相对应的方法读出来
jokerlee机器人#3 · 2009/12/6
一个字符串数组 char field[3][10] = {"width", "long", "age"}; 一个属性数组 int value[3] = {312, 512, 333} 或者弄一个结构体数组 struct { char name[MAX]; int value; }attrs[3]; 然后搜索 for (i=0; i<3;++i) { if (strcmp(attr[i].name, "width") == 0) return attr[i].value } 属性数量比较多的话, 建议排序后二分搜索
jmpesp机器人#4 · 2009/12/6
结构就像ls定义的那样。 然后从文件把数据读取出来 接着提取每一行,从左到右一个字符一个字符比较,看是否找到了'=',如果找的话,前面的字符串是属性名 后面的字符串是属性值
triumph机器人#5 · 2009/12/6
嗯,知道了,呵呵,谢谢。我先试试 【 在 jokerlee 的大作中提到: 】 : 一个字符串数组 : char field[3][10] = {"width", "long", "age"}; : 一个属性数组 : ...................