c语言代码展示读取配置文件中的数据,存入CONF结构体变量
时间: 2023-06-02 07:08:27 浏览: 398
好的,请看下面的代码示例:
```c
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
// 定义配置文件结构体
typedef struct {
char ip[30];
int port;
char username[20];
char password[20];
} CONF;
// 读取配置文件函数
int read_conf(CONF *conf, char *filename) {
FILE *fp;
char line[100];
char key[20], value[30];
// 打开配置文件
if ((fp = fopen(filename, "r")) == NULL) {
printf("Can't open configuration file %s.\n", filename);
return -1;
}
// 读取配置文件内容,并存入结构体中
while (fgets(line, sizeof(line), fp) != NULL) {
if (line[0] == '#' || line[0] == '\n') { // 排除注释行和空行
continue;
}
sscanf(line, "%s %s", key, value);
if (strcmp(key, "ip:") == 0) {
strcpy(conf->ip, value);
}
else if (strcmp(key, "port:") == 0) {
conf->port = atoi(value);
}
else if (strcmp(key, "username:") == 0) {
strcpy(conf->username, value);
}
else if (strcmp(key, "password:") == 0) {
strcpy(conf->password, value);
}
}
// 关闭配置文件
fclose(fp);
return 0;
}
// 主函数
int main() {
CONF conf;
// 读取配置文件
if (read_conf(&conf, "config.txt") != 0) {
printf("Read configuration file failed.\n");
exit(1);
}
// 打印读取到的配置信息
printf("ip: %s\n", conf.ip);
printf("port: %d\n", conf.port);
printf("username: %s\n", conf.username);
printf("password: %s\n", conf.password);
return 0;
}
```
以上代码示例演示了如何读取配置文件,并将读取到的数据存入结构体变量中。在读取过程中,通过判断每行内容的首字符来排除注释行和空行。同时,通过使用 sscanf 函数将每行内容按照 key-value 的形式进行排列和赋值。
希望本代码示例对您有所帮助!
阅读全文