cpp简单配置文件读

配置文件

1,192.168.87.12
1,192.168.87.13
1,192.168.87.14
1,192.168.87.15
1,192.168.87.16
1,192.168.87.17

 

读代码

#include <stdio.h>
#include <vector>

#define IP_LEN 16

int init_ips(std::vector<char*> *pips,const char * path);
void destroy_ips(std::vector<char*> *pips);

#define TEST_READ_IP_LIST

#ifdef TEST_READ_IP_LIST
int main(){
    std::vector<char*> ips;
    const char *path="D:\\Work\\0823\\test\\IP.txt";

    init_ips(&ips,path);
    std::vector<char*>::iterator it;
    for(it=ips.begin();it!=ips.end();it++){
        printf("IP : %s\n",*it);
        printf("IP : %s\n",strrchr(*it,'.')+1);
    }
    destroy_ips(&ips);

    printf("Over\n");
    getchar();
    return 0;
}
#endif

int init_ips(std::vector<char*> *pips,const char * path){
    char *ip;
    int index;
    FILE *fp=fopen(path,"rb");
    fseek(fp,0,SEEK_SET);
    while(!feof(fp)){
        ip=(char*)malloc(IP_LEN);
        memset(ip,0,IP_LEN);
        fscanf(fp,"%d,%[^\n]",&index,ip);
        if(strlen(ip)==0 && index>0){
            printf("file is invalid.\n");
            break;
        }else{
            pips->push_back(ip);
        }
    }
    fclose(fp);
    return pips->size();
}

void destroy_ips(std::vector<char*> *pips){
    std::vector<char*>::iterator it;
    for(it=pips->begin();it!=pips->end();){
        if(*it!=0)
            free(*it);
        it=pips->erase(it);
    }
}

转载于:https://www.cnblogs.com/tiancun/p/7472433.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值