将多行字符串添加到 Yaml-cpp 节点

Posted

技术标签:

【中文标题】将多行字符串添加到 Yaml-cpp 节点【英文标题】:Adding multiline string to a Yaml-cpp node 【发布时间】:2014-03-06 17:16:18 【问题描述】:

如何使用节点将多行字符串作为值添加到键? 我不想使用发射器。

我想要下面的代码

苹果手机: 废话...废话 \n 废话....废话 \n

我想使用 YAML::Node 对象以编程方式创建类似于上述的数据。

【问题讨论】:

【参考方案1】:

只需在您的节点中设置字符串:

YAML::Node node;
node["iphone"] = "blah ... blah \n blah .... blah \n"
std::cout << node;

如果您希望使用多行输出而不是\n,则必须使用发射器; yaml-cpp 不支持使用基本节点转储格式化输出。 (如果您认为值得,请随时在项目页面上提出问题。)

【讨论】:

是的,我正在寻找一种直接向节点添加多行字符串而不是使用发射器的方法。是否可以将发射器转换为节点? @user3389312,你是什么意思? 我的意思是使用字符串文字数据创建一个 YAML::Emitter,以便保留新行并最终将该发射器传递给节点。 “最终将发射器传递给节点”是什么意思? 我的意思是将发射器转换为节点

以上是关于将多行字符串添加到 Yaml-cpp 节点的主要内容,如果未能解决你的问题,请参考以下文章

从文档中检索 yaml-cpp 中的锚点和别名字符串

yaml-cpp:创建一个未定义的节点

使用 YAML-CPP 将 YAML 值添加到标准映射

如何将多列中的字符串添加到R中单列中的多行

如何将带有前导零的数字字符串转储为 yaml-cpp 中的有效 yaml 字符串?

如何将YAML节点中的序列作为字符串返回?