8

yaml-cpp をいじり始めたところです。適切にビルドし、yaml-cpp wiki からいくつかの例を実行することができましたが、エミッターをファイルに保存する方法が見つかりません。

これは不可能ですか?つまり、PyYAML ライブラリにはこのための「ダンプ」機能があります。yaml-cpp にそのような機能はありませんか? yaml エミッターを stl ストリームに変換し、これを yaml ファイルにダンプする回避策はありますか?

私にお知らせください

ありがとう、アダム

4

1 に答える 1

9

この関数は、終了するC スタイルの文字列 (解放する必要はありません) を返します。これをファイルに書き込むことができますEmitter::c_str()NULL例えば:

YAML::Emitter emitter;
emitter << "Hello world!";

std::ofstream fout("file.yaml");
fout << emitter.c_str();

Emitter::size()より高度な処理を行い、文字列を調べてその長さを調べたくない場合に備えて、その文字列のバイト数を返すもあります。

Nodea をストリームにダンプしたい場合は、次のショートカットがあります。

YAML::Node node = ...;
std::ofstream fout("file.yaml");
fout << node;
于 2010-07-27T20:52:49.247 に答える