使用C语言读取properties文件V1.0 分类: H_HISTORY 2013-02-26 12:37 946人阅读 评论(0) 收藏
本程序使用C语言读取类似以下格式的properties文件。
path = /etc/wgetrc
launch_on_start = true
下一版目标:
(1)使用指针代替二维数据或者二维数据的容量减少至最低要求。
(2)忽略所有空格,忽略空行及注释行
(3)头文件规范写法。
文件1:main.c
#include <stdio.h>
#include "read_properties.h"
int main(void){
char names[100][100], values[100][100];
read_properties("/home/lujinhong/scripts/projects/read_properties_file/test.properties", names, values);
return 0;
}文件2:read_properties.h
void read_properties(char *pathname, char names[100][100], char values[100][100]);
文件3:read_properties.c
/********************************************************************
* This file is used to read the names and values from a properties file,
* and store them in an array.
*
* ******************************************************************/
#include "read_properties.h"
#include <stdio.h>
#include <unistd.h>
#include "utils.h"
void read_properties(char *pathname, char names[100][100], char values[100][100]){
FILE *file;
char line[100];
int i = 0;
file = fopen(pathname, "r");
while(fgets(line, 100, file)){
printf("%s", line); //just for test, delete it later.
parseline(line, names[i], values[i]);
i++;
}
fclose(file);
}
文件4:utils.h
void parseline(char *line, char *name, char *value);
文件5:utils.c
/***********************************************************
* Parse content of the line, and store the name and value.
* line example: path=/etc/wgetrc
*
* *********************************************************/
void parseline(char *line, char *name, char *value){
int length = 0, equal = 1; //equal will record the location of the '='
char *begin;
length = strlen(line);
for(begin = line; *begin != '=' && equal <= length; begin ++){
equal++;
}
strncpy(name, line, equal - 1);
line+=equal;
strncpy(value, line, length - equal);
printf("name = %s value = %s\n", name, value); //just for test, delete it later.
}运行结果:
path = /etc/wgetrc name = path value = /etc/wgetrc launch_on_boot = true name = launch_on_boot value = true
版权声明:本文为博主原创文章,未经博主允许不得转载。
欢迎转载,请注明来自:
www.lujinhong.com
www.cnblogs.com/lujinhong2

浙公网安备 33010602011771号