Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用zlib轻松压缩和解压缩文件?_C++_Zlib_Compression - Fatal编程技术网

C++ 如何使用zlib轻松压缩和解压缩文件?

C++ 如何使用zlib轻松压缩和解压缩文件?,c++,zlib,compression,C++,Zlib,Compression,如何使用zlib轻松压缩和解压缩文件?请仔细阅读。信息已可用: 这是谷歌上出现的第一个链接 对于解压缩: char buf[1024*1024*16]; gzFile *fi = (gzFile *)gzopen("file.gz","rb"); gzrewind(fi); while(!gzeof(fi)) { int len = gzread(fi,buf,sizeof(buf)); //buf contains len bytes of decompressed d

如何使用zlib轻松压缩和解压缩文件?

请仔细阅读。信息已可用:
这是谷歌上出现的第一个链接

对于解压缩:

char buf[1024*1024*16];
gzFile *fi = (gzFile *)gzopen("file.gz","rb");
gzrewind(fi);
while(!gzeof(fi))
{
    int len = gzread(fi,buf,sizeof(buf));
        //buf contains len bytes of decompressed data
}
gzclose(fi);
压缩

gzFile *fi = (gzFile *)gzopen("file.gz","wb");
gzwrite(fi,"my decompressed data",strlen("my decompressed data"));
gzclose(fi);

如果您可以使用boost,我建议使用boostiostreamsapi。见
. 它支持GZIP和BZIP2压缩器和解压缩程序。

我觉得文档编写起来并不容易。这里不是只有一个简单的函数,比如compress()decompress()?@Downvoter:想解释一下为什么会有downvote吗?OP从未在原始问题中提到他/她不理解zlib网站上的示例。我提供了这些的链接,这有什么问题吗?我想说,任何人如果问这样的问题,都应该很明显,他们已经RTFM了,仍然需要帮助,我发现zlib“示例”对我自己来说非常没有帮助,例如,我们大多数人都没有试图解压缩stdin。@Datoxalas是的,事实上有
compress()
解压缩()
zlib提供的函数。你看过文档了吗?@Cristi:我发现一个错误:
main.cpp从
const void*”到void*”的转换无效,在这行:
gzwrite(fi,“我的解压缩数据”,strlen(“我的解压缩数据”)。你能帮我吗?试试gzwrite(fi,(void const*)“我的解压缩数据”,strlen(“我的解压缩数据”)@克里斯蒂:我得到了同样的错误。在你的zlib发行版中,gzwrite似乎将void*作为第二个参数,而不是像我一样将const void*作为第二个参数。一个快速的错误修复方法是gzwrite(fi,(void*)“我的解压缩数据”,strlen(“我的解压缩数据”)@克里斯蒂:现在我得到了:
[Linker error]对“gzopen”的未定义引用。
。你读了吗?如果是,你试过什么?如果您尝试的方法无效,请发布您的代码并说明发生了什么。