如何从配置文件中获取值

时间:2013-07-02 07:09:26

标签: c configuration strtok

我有以下Config.cfg

[DD]
user=**
password=***
database=***
IPServidor=****
port=***

[Controller]
Control1=8
Temp=5
Hum=7
Link=8
Volt=9

[Controller]
Control2=10
Temp=5
Hum=7
Link=8
Volt=9

我想只读取控制器的值并将它们打印到屏幕上,如

Controller_8: 5,7,8,9

我不想使用libconfig或glib,因为我遇到了未定义函数的问题。我做了安装,我有标题,但我不知道为什么它不起作用。所以我想要另一个解决方案我的第一个想法是使用strchr来找到我想要的行(在我的情况下忽略[DD]表)并使用strtok来获取temp,hum,link,volt的值

 char buffer1[100];
 FILE *f = fopen("/home/pi/Desktop/Config.cfg","r");
 while(fgets(buffer1, sizeof(buffer1), f))
{
    printf("%s",buffer1);
    char *pos1 = strchr(buffer1,'Controller');
    if (pos1)
    {

    item = strtok (buffer1,"Control");
    printf("Results: %s\n", buffer1);
    }
}

以上代码不正确。只是一个想法。还有更好的办法吗?

1 个答案:

答案 0 :(得分:0)

不要尝试解析ini文件,使用现有的库。

Ini文件解析包含在许多“框架”中,例如Gtk+Windows。如果您无法访问它们,您仍然可以使用某个独立库,例如:http://ndevilla.free.fr/iniparser/