gpt4 book ai didi

c# - 在 C++ 中使用 DeflateStream?

转载 作者:行者123 更新时间:2023-11-30 02:06:32 24 4
gpt4 key购买 nike

我目前正在尝试将一些涉及使用 DeflateStream 的 C# 代码移植到没有 .NET 框架支持的标准 C++ 中。这种功能的一个例子是:

public static byte[] ReadCompressed(this Stream stream)
{
var reader = new BinaryReader(stream);
int len = reader.ReadInt32();
var array = new byte[len];
var ds = new DeflateStream(stream, CompressionMode.Decompress);
ds.Read(array, 0, len);
ds.Close();
return array;
}

只是想知道,有没有一种简单的方法可以将上面的代码移植到 C++ 中?谢谢!

最佳答案

您可能想使用 zlib .在 C++ 中最简单的方法是使用 Boost wrapper for it .

我不完全确定你的示例做了什么,但这里是如何读取 zlib 压缩文件并将其内容写入标准输出(改编自文档中的示例):

namespace io = boost::iostreams;

std::ifstream file("hello.z", std::ios_base::binary);
io::filtering_streambuf<io::input> in;
in.push(io::zlib_decompressor());
in.push(file);
io::copy(in, std::cout);

关于c# - 在 C++ 中使用 DeflateStream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8719034/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com