1

在消息包网站中:

消息包

上面有“尝试”链接,它向我显示数据的代表字符串有多长。

我有一个基于消息包 git hub 中提供的示例的小脚本

#include <msgpack.hpp>
#include <vector>
#include <string>
#include <iostream>

int main(void) {
    using namespace std;

    msgpack::sbuffer buffer;

    msgpack::packer<msgpack::sbuffer> pk(&buffer);
    pk.pack_map(2);
    pk.pack(string("SerialNumber"));
    pk.pack(123456789);
    pk.pack(string("Date"));
    pk.pack("1.4.14");



    //deserialize

    msgpack::unpacker pac;
    pac.reserve_buffer(buffer.size());
    memcpy(pac.buffer(),buffer.data(),buffer.size());
    pac.buffer_consumed(buffer.size());


    msgpack::unpacked result;
    while(pac.next(&result))
    {
        cout<<result.get()<<endl<<endl;

    }

效果很好,但我想检索在打包数据后面表示的字符串。就像在“试试!” 关联。我怎样才能找到它?

谢谢你

4

1 回答 1

1

我想检索在打包数据后面表示的字符串

您可以做的是以十六进制格式打印简单缓冲区的内容:

const char *data = buffer.data();
for (int i = 0; i < buffer.size(); i++)
    printf("%02x ", (unsigned char) data[i]);
于 2015-07-09T16:24:13.030 回答