返回信息流例如:width=312
long=512
age=333
每一行都用回车符换行,保存在data.txt文件中,怎么用C写一个函数INT GET(FILE *file,char *attr,char *value)
输入long 可以得出512
输入age 可以得到333
若查不到则输出false
实在是不知道将字符提取出来后存在什么地方,而且能够一一对应的查找。
这是一条镜像帖。来源:北邮人论坛 / cpp / #32807同步于 2009/12/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
C中如何读取配置文件
triumph
2009/12/6镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
建一个数组,每次从文件里面读一行进行分析,放到相应的数据街都里面
或者每次读名字‘=’或者数字,看当时存进文件的时候怎么放的了,然后用相对应的方法读出来
【 在 triumph 的大作中提到: 】
: 例如:width=312
: long=512
: age=333
: ...................
可是你怎么把属性值和数字一一对应呢?
【 在 zebraSecond 的大作中提到: 】
: 建一个数组,每次从文件里面读一行进行分析,放到相应的数据街都里面
: 或者每次读名字‘=’或者数字,看当时存进文件的时候怎么放的了,然后用相对应的方法读出来
一个字符串数组
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
}
属性数量比较多的话, 建议排序后二分搜索
结构就像ls定义的那样。
然后从文件把数据读取出来
接着提取每一行,从左到右一个字符一个字符比较,看是否找到了'=',如果找的话,前面的字符串是属性名 后面的字符串是属性值
嗯,知道了,呵呵,谢谢。我先试试
【 在 jokerlee 的大作中提到: 】
: 一个字符串数组
: char field[3][10] = {"width", "long", "age"};
: 一个属性数组
: ...................