C语言 读取配置文件
配置文件截图:
读取结果截图:
代码转自:http://www.tuicool.com/articles/Zb2iIn
附代码:
- // ReadConfig.cpp : 定义控制台应用程序的入口点。
- //
- //#include "stdafx.h"
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- struct configItem
- {
- char key[];
- char value[];
- };
- configItem configList[] = {
- {"ip", },
- {"port", },
- {"line", }
- };
- /*
- * 这个函数是对给定的一个字符串寻找以等号分开的键值对
- * src -- 源字符串
- * key -- 键
- * value -- 值
- */
- int strkv(char *src, char *key, char *value)
- {
- char *p, *q;
- int len;
- p = strchr(src, '=');//p找到等号
- q = strchr(src, '\n');//q找到换行
- //如果有等号有换行
- if (p != NULL && q != NULL)
- {
- *q = '\0'; //将换行设置为字符串结尾
- strncpy(key, src, p-src); //将等号前的内容拷入key中
- strcpy(value, p+); //将等号后的内容拷入value中,跳过等号所以p需要加1
- return ;
- }
- return ;
- }
- /*
- * 读取配置函数
- *
- */
- void Config(char * configFilePath, struct configItem* configVar, int configNum)
- {
- int i;
- FILE * pfile;
- char buf[] = ""; //缓冲字符串
- char key[] = ""; //配置变量名
- char value[] = ""; //配置变量值
- //打开配置文件
- pfile = fopen(configFilePath, "r");
- if (pfile == NULL)
- {
- printf("配置文件打开失败!\n");
- exit(-);
- }
- //依次读取文件的每一行
- while (fgets(buf, , pfile))
- {
- //读取键值对
- if (strkv(buf, key, value))
- {
- //读取成功则循环匹配数组
- for (i = ; i < configNum; i++)
- {
- //名称相等则匹配成功,拷贝value值
- if (strcmp(key, configVar[i].key) == )
- {
- strcpy(configVar[i].value, value);
- }
- }
- //key字符串在strkv函数内部没有给结束符'\0',需要这里重置一下
- //value在strkv中已经给了结束符'\0'
- memset(key, , strlen(key));
- }
- }
- fclose(pfile);
- }
- void main()
- {
- int i;
- //读取配置文件
- Config("C:\\config.txt",
- configList,
- sizeof(configList)/sizeof(struct configItem)
- );
- for (i = ; i < sizeof(configList)/sizeof(struct configItem); i++)
- {
- printf("%s=%s \n", configList[i].key, configList[i].value);
- }
- system("pause");
- }
(完)
C语言 读取配置文件的更多相关文章
- C语言读取配置文件
自从大学学完C之后,就再也没用过它了, 在网上找代码,七拼八凑之后,终于成形~~勉强能用,不喜勿喷,^_^! int GetValue(const wchar_t *key, wchar_t *val ...
- Go语言读取各种配置文件
配置文件结构体 config.go package config type System struct { Mode string `mapstructure:"mode" jso ...
- Windows 服务多语言化时读取配置文件失败的问题。
在Installer中,按一般读取配置文件的方法(ConfigurationManager.AppSettings["CultureName"])读取不到内容. 可以这样读取: v ...
- Python语言的configparser模块便捷的读取配置文件内容
配置文件是在写脚本过程中经常会用到的,所以读取配置文件的模块configparser也非常重要,但是很简单. 首先我们的配置文件内容为: 这样的配置文件,[]里面的内容叫section,[]下面的内容 ...
- 利用java反射机制 读取配置文件 实现动态类载入以及动态类型转换
作者:54dabang 在spring的学习过程之中,我们能够看出通过配置文件来动态管理bean对象的优点(松耦合 能够让零散部分组成一个总体,而这些总体并不在意之间彼此的细节,从而达到了真正的物理上 ...
- 依据不同的操作系统读取配置文件/java读取属性文件代码
package cn.com.css.common.util; /** * @brief OSEnum.java 操作系统的枚举 * @attention * @author 涂作权 * @d ...
- java中读取配置文件ResourceBundle和Properties两种方式比较
今天在开发的时候,需要把一些信息放到配置文件中,方便后续的修改,注意到用的是ResourceBundle读取配置文件的方式,记得之前也见过使用Properties的方式,就比较好奇这两种方式的区别,网 ...
- ResourceBundle与Properties读取配置文件
ResourceBundle与Properties的区别在于ResourceBundle通常是用于国际化的属性配置文件读取,Properties则是一般的属性配置文件读取. ResourceBundl ...
- ResourceBundle和properties 读取配置文件区别
java.util.ResourceBundle 和java.util.properties 读取配置文件区别 这两个类都是读取properties格式的文件的,而Properties同时还能用来写文 ...
随机推荐
- java课后实验性问题4
课后作业一: 使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数.请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象? 设计思路:定义类的构造函数时使静态变量i进行i++,即每构 ...
- Tensorflow使用训练好的模型进行测试,发现计算速度越来越慢
实验时要对多个NN模型进行对比,依次加载直到第8个模型时,发现运行速度明显变慢而且电脑开始卡顿,查看内存占用90+%. 原因:使用过的NN模型还会保存在内存,继续加载一方面使新模型加载特别特别慢,另一 ...
- tensorflow训练时用到的一些“工具”
1.graph和参数的store和restore 2.tensorboard查看 2.1tensorboard根据.meta文件查看图 2.2如何看图
- mongoose 实现 增、删、改、查
mongoose常用的API 增 save是一个实例方法,使用时需要先 new Model() 来实例化 //保存一个用户信息,userobj为你创建的文档对象模型里的字段,需正确对应传入 const ...
- selenium 配置 chromedriver
参考文档: https://blog.csdn.net/yoyocat915/article/details/80580066?tdsourcetag=s_pcqq_aiomsg http://npm ...
- 一步一步搭建Nuget私服
大致流程:1. 通过VS创建一个Web空项目,然后通过Nuget引入Nuget.Server(目前最新版3.2.1).2. 直接将这个Web项目发布到IIS.3. 通过nuget.exe打包*.nup ...
- js的event详解
event代表事件的状态,例如触发event对象的元素.鼠标的位置及状态.按下的键等等.event对象只在事件发生的过程中才有效.event的某些属性只对特定的事件有意义.比如,fromElement ...
- sed例子
以care.log这个log文件为例, care.log: 05:44:31,816 DEBUG RawAggregationWorker:70 - LTS is working on Raw Dat ...
- Django:(01) 关于什么是Django?
一.从 WSGI 开始了解 Django 在了解 Django 之前有必要先了解一下 Python 被用于 Web 开发的基础协议——WSGI. 在开发 web 应用时,我们不希望接触到TCP连接.H ...
- Centos7 yum源配置及关闭防火墙
清理源 #yum clean all更新源缓存 #yum makecache更新源 #yum update 设置主机名: #hostnamectl set-hostname 查看防火墙状态 #syst ...