Я пытаюсь преобразовать структуру в msgpack на C или C ++. Пожалуйста, найдите код ниже:
struct your_type {
int a;
float b;
MSGPACK_DEFINE(a, b);
};
int main() {
// packing
std::stringstream ss;
std::vector<std::map<std::string, your_type>> v
{
{
{ "t", {1,2.7} }
},
{
{"value", {2, 6.8} }
}
};
msgpack::pack(ss, v);
}
Я понимаю, как преобразовать этот вывод в объект, используя msgpack::object_handle
. Но я хочу напечатать упакованный вывод в C, чтобы проверить, выглядит ли он как формат, который мы получаем после преобразования кадра данных в msgpack
в Python. Как я могу отобразить вывод msgpack::pack
?
Отредактировано: hex_dump (), поскольку упомянутый ответ, предоставленный в комментариях, фактически помогает в получении ответа.
struct your_type {
int a;
int b;
MSGPACK_DEFINE(a, b);
};
int main() {
std::stringstream ss;
std::vector<std::map<std::string, your_type>> v
{
{
{ "t",{ 1, 2 } }
},
{
{ "value",{ 3, 6 } }
}
};
msgpack::pack(ss, v);
hex_dump(std::cout, ss.str()) << std::endl;
}
Я могу преобразовать эту структуру в шестнадцатеричные значения. Но я пытаюсь создать значение с плавающей точкой для b в структуре, чтобы «значение» могло принимать значения с плавающей точкой. Я не в состоянии сделать это, хотя. Может ли кто-нибудь, пожалуйста, направить меня в этом?