[C++基础]一个比较常用的配置文件/初始化文件读取程序

在编程中,我们经常会遇到一些配置文件或初始化文件。这些文件通常后缀名为.ini或者.conf,可以直接用记事本打开。里面会存储一些程序参数,在程序中直接读取使用。例如,计算机与服务器通信,服务器的ip地址,段口号可以存储于ini文件中。这样如果我想换另外一台服务器时,直接将ini文件中的ip地址改变即可,程序源代码不需要做任何修改。

本文将分享一段常用代码,用于读取配置文件中的信息。本文中的代码为C语言编写,在ubuntu 12.04 linux系统中调试没有问题。具体操作如下:

1. 首先用记事本创建一个config.ini文件(文件名可以随便取),并假设该文件是我们要读取的配置文件。文件内容如下:

information1: 1234567890
information2: this is test information
information3: `~!@#$%^&*()_+{}-[]|:"/.,<>

假设我们读取的初始化文件每一行都是  <属性名称>: <属性值>  的格式。在上述例子中,文件共有三行,分别代表三个属性的信息。

2. 然后就是我们的代码文件了,如下(将以下代码存在ReadFile.cpp中):

#include <string.h>
#include <stdio.h>

const size_t MAX_LEN = 128;

typedef struct{
    char firstline[MAX_LEN];
    char secondline[MAX_LEN];
    char thirdline[MAX_LEN];
} Data;

void readfile(Data *d){
    const char *FileName = "config.ini";
    char LineBuf[MAX_LEN]={0};
    FILE *configFile = fopen(FileName, "r");
    memset(d,0,sizeof(Data));
    while(NULL != fgets(LineBuf, sizeof(LineBuf), configFile))
    {
        size_t bufLen = strlen(LineBuf);
        if('
' == LineBuf[bufLen-1] || '
' == LineBuf[bufLen-1])
        {
            LineBuf[bufLen-1] = '