Как выделять и разбирать сырые двоичные данные с использованием YAML-CPP

StackOverflow https://stackoverflow.com/questions/4046389

  •  27-09-2019
  •  | 
  •  

Вопрос

Можно ли выбросить и прочитать (анализ) двоичные данные (изображение, файл и т. Д.)? Как это показано здесь:http://yaml.org/type/binary.html.Как я могу сделать это в YAML-CPP?

Это было полезно?

Решение

Как Редакция 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 Не обязательно один байт, поэтому я не уверен, как портативный алгоритм есть. В каком формате обычно находится ваш байтовый массив?

(Проблема в том, что uint8_t пока не стандартный C ++, поэтому я немного беспокоюсь об использовании его.)

Что касается разборы, yaml-cpp Обязательно анализируют данные как строку, но пока нет алгоритма декодирования.

Другие советы

Здесь отвечает, как прочитать / разбирать двоичные данные из файла yaml с библиотекой YAML-CPP.

Этот ответ предполагает, что вы сможете загрузить объект узла YAML :: Node из файла YAML - объяснено в руководствах YAML-CPP: https://github.com/jbeeder/yaml-cpp/wiki/tuTorial.).

Код для разбора двоичных данных из узла ЯМЛ:

YAML::Binary binary = node.as<YAML::Binary>();
const unsigned char * data = binary.data();
std::size_t size = binary.size();

Затем у вас есть массив байтов «Данные» с известным размером «размер».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top