我通过引用yaml-cpp教程,使用yaml-cpp(版本0.5.2)演示了简单的示例代码来演示YAML加载/转储。转储结果文件不是我的预期。
# config.yaml file
lastLogin: 1441030476
password: "pass1234"
username: "admin"
#include <iostream>
#include <fstream>
#include <string>
#include <time.h>
#include "yaml-cpp/yaml.h"
int main()
{
const char config_yaml[] = "config.yaml";
YAML::Node config = YAML::LoadFile(config_yaml);
if (config["lastLogin"]) {
std::cout << "Last logged in: " << config["lastLogin"].as<int>() << "\n";
}
const std::string username = config["username"].as<std::string>();
const std::string password = config["password"].as<std::string>();
std::cout << "username: '" << username << "'" << std::endl;
std::cout << "password: '" << password << "'" << std::endl;
config["lastLogin"] = (int)time(0);
std::ofstream fout(config_yaml);
fout << config;
return 0;
}
# config.yaml file
lastLogin: 1441030476
password: !<!> pass1234
username: !<!> admindvp
正如您在上面生成的文件中看到的那样,string的值从引用更改为"!<!>"
前缀字符串。
我的问题是在转储结果中字符串值之前的含义是"!<!>"
。
以及我如何使用上面的示例制作yaml-cpp转储引用字符串。
Nodejs yamljs模块无法正确加载字符串,它将其识别为null,因此"!<!>"
符号不能用于字符串。
答案 0 :(得分:1)
这是yaml-cpp中的一个错误。请参阅项目网站上的https://sestevenson.wordpress.com/implementation-of-fir-filtering-in-c-part-1/。