c++ - 在 C++ 中对二进制对象进行编码/解码的标准方法

标签 c++ encode

我想将一些基本类型编码/解码为二进制。

测试代码可能是这样的。

 int main()
{
    int iter = 0;
    char* binary = new char[100];

    int32_t version = 1;
    memcpy(binary, &version, sizeof(int32_t));
    iter+=sizeof(int32_t);

    const char* value1 = "myvalue";
    memcpy(binary+iter, value1, strlen(value1));
    iter+=strlen(value1);

    double value2 = 0.1;
    memcpy(binary+iter, &value2, sizeof(double));
#warning TODO - big/small endian - fixed type length

    return 0;
}

但是我还需要解决很多问题,比如字节序和固定类型长度。

所以我想知道是否有一个标准的方法来实现这个。

同时,我不想使用任何第三方实现,比如Boost等。因为我需要保持我的代码简单和独立。

如果Objc中有NSCoding这样的函数/类,那最好不过了。我想知道 C++ 标准库中是否有相同的东西。

最佳答案

不,标准库中没有序列化函数。使用库或自己实现。

请注意,raw new 和 delete 在 C++ 中是一种不好的做法。

关于c++ - 在 C++ 中对二进制对象进行编码/解码的标准方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42621887/

相关文章:

c++ - Windows 系统中是否存在未缓冲的 I/O?

c++ - 如何在平面上获得三个非共线点? - C++

python - 如何获取utf8编码的html内容

c++ - 如何链接和使用 OpenCV header ?

c++ - 创建具有多态性和 op 的模板。 C++中的重载

c++ - 如何从类中调用函数 - 错误 "was not in the scope"

php - 在 Linux 系统中使用 IonCube Loaders

php - 在 URL 中编码和存储多个变量

api - 如何使用 ffmpeg av_interleaved_write_frame() 写入 x264_encoder_encode() 生成的 NAL

带有 TD 和 Quanteda 西类牙语字符的 R 西类牙语词频矩阵