关于zlib解压缩的问题~

来源:百度知道 编辑:UC知道 时间:2024/06/06 01:03:52
我最近在使用zlib库进行数据的压缩和解压,主要用于网络数据的传输,大致过程为:
从某一txt文件中读取内容,将其解压后存入另一txt文件(txt1)中,最后将txt1中的内容解压存入txt2中。每次压缩都没有问题,可是解压的时候总得不到源文件,好像不能正确获得压缩文件的长度而导致解压失败,具体要怎么操作也不太明白。
急需各位高手的解答,在此谢过了~
麻烦能说明一下zlib库里的uncompress()函数在使用时需要注意的地方吗?
我在压缩和解压时只调用了zlib的两个接口,分别为
compress()和uncompress()

"好想开心一下" 非常谢谢你的解答~~
在解压的时候,我先把文件txt1中的内容(即压缩后的内容)存入字符数组data中,然后把data作为参数之一传递给函数uncompress(),再把解压得到的内容存入文件txt2中,可是得到的却是一堆乱码,麻烦能帮我分析一下可能的原因吗?
可以确定我分配的缓冲区大小及长度是足够的,用的是C++编写

压缩与解压缩的时候,分别有2个不同的版本,分别是safe和普通的版本。2个版本要对应起来。

你在解压缩的时候,注意缓冲区大小了吗?缓冲区够用了吗?在压缩前,保存一下这个压缩前的原始的长度,然后解压前,分配一块至少这么大的内存。

你实际调试过吗?比如,你可以先去掉文件IO的过程,只是对一个字符串进行压缩/解压,然后看看是否正确;然后再加上文件IO,看看存取的过程是否正确。压缩后的文件应该以二进制方式打开对吧。