バイナリデータ(画像、ファイルなど)を出力して読み取る(解析する)ことは可能ですか?このようにここに示されています:http: //yaml.org/type/binary.html yaml-cppでこれを行うにはどうすればよいですか?
4566 次
2 に答える
3
リビジョン425の時点で、はい!(放出用)
YAML::Emitter emitter;
emitter << YAML::Binary("Hello, World!", 13);
std::cout << emitter.c_str();
出力
--- !!binary "SGVsbG8sIFdvcmxkIQ=="
構文は
YAML::Binary(const char *bytes, std::size_t size);
バイト配列を渡す方法がわかりませんでした。char
必ずしも1バイトである必要はないため、アルゴリズムの移植性がどれほどかはわかりません。バイト配列は通常どのような形式ですか?
(問題は、uint8_t
まだ標準のC ++ではないため、使用するのが少し心配です。)
解析に関してyaml-cpp
は、確かにデータを文字列として解析しますが、デコードアルゴリズムはまだありません。
于 2010-10-28T23:14:43.827 に答える
3
ここでは、yaml-cppライブラリを使用してyamlファイルからバイナリデータを読み取り/解析する方法について説明します。
この回答は、yamlファイルからYAML :: Nodeノードオブジェクトをロードできることを前提としています-yaml-cppチュートリアルで説明されています:https ://github.com/jbeder/yaml-cpp/wiki/Tutorial )。
yamlノードからのバイナリデータを解析するコードは次のとおりです。
YAML::Binary binary = node.as<YAML::Binary>();
const unsigned char * data = binary.data();
std::size_t size = binary.size();
次に、既知のサイズ「サイズ」のバイト「データ」の配列があります。
于 2016-05-15T17:26:26.417 に答える