zlib简单示例代码,compress、uncompress


#include <iostream>

#include <string>

 

#include <zlib.h>

#include <zconf.h>

 

using namespace std;

 

 

int main(int argc, char *argv[])

{

	//

	unsigned char szSrc[] = "test the compression and uncompression of zlib.";

	unsigned long nSrcLen = sizeof(szSrc);

 

	unsigned char szZip[1024] = {0};

	unsigned long nZipLen = 1024;

 

	compress(szZip, &nZipLen, szSrc, nSrcLen);

 

	//

	unsigned char szUnZip[1024] = {0};

	unsigned long nUnZipLen = 1024;

 

	uncompress(szUnZip, &nUnZipLen, szZip, nZipLen);

 

	//

	cout<<"Src:"<<szSrc<<", len:"<<nSrcLen<<endl;		

	cout<<"Zip:"<<szZip<<", len:"<<nZipLen<<endl;

	cout<<"UnZip:"<<szUnZip<<", len:"<<nUnZipLen<<endl;

 

 

 

	return 0;

}

输出结果:

Src:test the compression and uncompression of zlib., len:48
Zip:x.I-.Q(?UH蜗-(J-.翁?H?Q(??Sㄊ??, len:46
UnZip:test the compression and uncompression of zlib., len:48

 

“正在学习,未验证”

 

 

转自:https://blog.csdn.net/guowenyan001/article/details/9204201

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++20 并没有提供自带的 zlib ,但您可以使用第三方或手动编译 zlib 并链接到您的项目中。以下是一个使用第三方 zlib-ng 的 C++20 示例代码,可以用于压缩和解压缩数据: ```cpp #include <iostream> #include <cstring> #include <zlib-ng.h> int main() { const char* source = "Hello, world!"; const unsigned long sourceLen = strlen(source) + 1; // 加上字符串末尾的 '\0' unsigned long destLen = compressBound(sourceLen); // 预估压缩后的长度 char* dest = new char[destLen]; // 压缩数据 int ret = compress2((Bytef*)dest, &destLen, (const Bytef*)source, sourceLen, Z_BEST_COMPRESSION); if (ret != Z_OK) { std::cerr << "Compression failed." << std::endl; return 1; } std::cout << "Compressed data: " << dest << std::endl; // 解压缩数据 char* source2 = new char[sourceLen]; destLen = sourceLen; ret = uncompress((Bytef*)source2, &destLen, (const Bytef*)dest, destLen); if (ret != Z_OK) { std::cerr << "Decompression failed." << std::endl; return 1; } std::cout << "Decompressed data: " << source2 << std::endl; delete[] dest; delete[] source2; return 0; } ``` 在这个例子中,我们使用了 zlib-ng 提供的 compress2 和 uncompress 函数,实现了与上一个示例类似的功能。注意,与 zlib 不同,zlib-ng 的压缩函数需要传入一个压缩级别参数,这里我们传入了 Z_BEST_COMPRESSION,表示最高的压缩级别。 在实际使用中,您需要根据具体的和算法选择合适的函数和参数,并进行更加完整的错误处理和调试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值