C++中如何读取一个ini文件 20

是这样的格式:[Main]Color=0,255,200Type=5String=HelloImage=test\a.bmpSize=0.0,255.0,0.0Read=... 是这样的格式:
[Main]
Color=0, 255, 200
Type=5
String=Hello
Image=test\a.bmp
Size=0.0, 255.0, 0.0
Read=true

请问如何把这些读取到指定的变量中, 并且每个数据的第一个保存在变量的第一个元素里面,第二个保存在第二个元素里面?(要求能根据栏的标题,也就是"[Main]"进行读取,也就是说如果下面还有一个[Secondary], 但是只会读取我规定的栏)
例如,我要读取Main栏里面的Color数据,那么新建一个整型变量int iColor[3], 应该读取的就是iColor[0]=0, iColor[1]=255, iColor[2]=200
请大侠指教谢谢
对了 我是用的Visual Studio 2013,里面的fstream.h可能与VC++6.0不一样
展开
 我来答
wen8756jie
推荐于2018-05-09 · TA获得超过174个赞
知道小有建树答主
回答量:194
采纳率:60%
帮助的人:56.8万
展开全部
文件内容实例
[net]
;应用服务器IP
AppSrvIp=10.123.15.108
;端口
LocalPort=21008

int ReadParam(char* path)//path 就是.ini文件的路径例如:c:\\abc.ini

{
//读取int类型 参数说明: 标签 ID 默认值 文件路径

int testInt = GetPrivateProfileInt("net", "LocalPort", 21008, path);
//读取字符串
char ltmp[1024] = {0};
char AppSrvIp[20] = {0};
memset(ltmp, 0, sizeof(ltmp));
GetPrivateProfileString("net", "AppSrvIp", "", ltmp, sizeof(ltmp), path);
strcpy(AppSrvIp, ltmp);
return 0;

}
reficull
2015-04-29 · TA获得超过661个赞
知道小有建树答主
回答量:522
采纳率:0%
帮助的人:334万
展开全部
我所在公司这是作为公司面试题,自己写方法来解析是不难的,但如果是为了省时间,使用现成的库就大把,现举例一个用boost property_tree 库, 假设文件是 config.ini

#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/ini_parser.hpp>

...

boost::property_tree::ptree pt;
boost::property_tree::ini_parser::read_ini("config.ini", pt);
std::cout << pt.get<std::string>("Main.Color") << std::endl;
std::cout << pt.get<int>("Main.Type") << std::endl;
std::cout << pt.get<std::string>("Main.String") << std::endl;
追问
这个头文件哪里有
追答
boost库啊,你用的什么系统?ubuntu,debian可以一行命令装完
apt-get install libboost-all-dev

如果没有就搜一下
apt-cache search libboost

其它系统去官网下,自己看帮助文档
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-04-29
展开全部
struct文本要知道结构体成员,TXT的自己看着办,还有一种INI库函数
追答
项少的话,直接用结构体,读写都方便
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式