yaml

https://github.com/jbeder/yaml-cpp/wiki/Tutorial

 

典型的加载YAML文件的例子:

YAML::Node config = YAML::LoadFile("config.yaml");  //执行文件同级目录

if (config["lastLogin"]) //如果文件节点有成员节点lastLogin

{

//获取并打印文件节点的成员节点lastLogin,转化为数据结构DateTime

 std::cout << "Last logged in: " << config["lastLogin"].as<DateTime>() << "\n";

}

const std::string username = config["username"].as<std::string>();

const std::string password = config["password"].as<std::string>(); login(username, password);

config["lastLogin"] = getCurrentDateTime();

std::ofstream fout("config.yaml"); fout << config;

 

 

基本解析和节点编辑

在文件YAML里面所有信息以节点形式表示。可以检查节点的类型如:YAML::NodeType::Sequence/Null/Scalar/Map/Undefined

集合节点(Sequence组或map结构)与STL的vector和map结构用法一致

 

Sequence的用法如下

YAML::Node primes = YAML::Load("[2, 3, 5, 7, 11]");

 for (std::size_t i=0;i<primes.size();i++)

 {

std::cout << primes[i].as<int>() << "\n";

} // or:

for (YAML::const_iterator it=primes.begin();it!=primes.end();++it)

{ std::cout << it->as<int>() << "\n"; }

primes.push_back(13);

assert(primes.size() == 6);

 

Map的用法如下:

YAML::Node lineup = YAML::Load("{1B: Prince Fielder, 2B: Rickie Weeks, LF: Ryan Braun}");

for(YAML::const_iterator it=lineup.begin();it!=lineup.end();++it)

 { std::cout << "Playing at " << it->first.as<std::string>() << " is " << it->second.as<std::string>() << "\n"; }

 lineup["RF"] = "Corey Hart";

lineup["C"] = "Jonathan Lucroy";

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值