c++ zlib(qt)压缩与解压缩

简介:

#include <QtCore/QCoreApplication>

#include "zlib.h"
#include "stdio.h"
#include <iostream>
using    namespace    std;
 
#define MaxBufferSize 999999
 
void  Test1();
void  Test2();
 
int  main( int  argc,  char  *argv[])
{
     QCoreApplication a(argc, argv);
 
     //Test1();
     Test2();
     
     return  a.exec();
}
 
//c++ zlib
void  Test1()
{
     FILE* File_src;
     FILE* File_compress;
     FILE* File_uncompress;
 
     unsigned  long  len_src;
     unsigned  long  len_compress;
     unsigned  long  len_uncompress;
 
     unsigned  char  *buffer_src  =  new  unsigned  char [MaxBufferSize];
     unsigned  char  *buffer_compress  =  new  unsigned  char [MaxBufferSize];
     unsigned  char  *buffer_uncompress =  new  unsigned  char [MaxBufferSize];
 
     File_src = fopen( "src.txt" , "r" );
     File_compress = fopen( "compress.txt" , "w" );
     File_uncompress = fopen( "uncompress.txt" , "w" );
 
     //compress
     len_src = fread(buffer_src, sizeof ( char ),MaxBufferSize-1,File_src);
     compress(buffer_compress,&len_compress,buffer_src,len_src);
     fwrite(buffer_compress, sizeof ( char ),len_compress,File_compress);
     cout <<  "normal zlib:"  << endl;
     cout <<  "src:\n"  << buffer_src <<  ",length:"  << len_src << endl << endl;
     cout <<  "compress:\n"  << buffer_compress <<  ",length:"  << len_compress << endl << endl;
 
     //uncompress
     uncompress(buffer_uncompress,&len_uncompress,buffer_compress,len_compress);
     fwrite(buffer_uncompress, sizeof ( char ),len_uncompress,File_uncompress);
     cout <<  "uncompress:\n"  << buffer_uncompress <<  ",length:"  << len_uncompress << endl << endl;
 
     fclose(File_src);
     fclose(File_compress);
     fclose(File_uncompress);
}
 
//qt zlib
void  Test2()
{
     QByteArray src;
     src.append( "中华人民共和国,china mobile,123456" );
 
     unsigned  long  len_compress;
     unsigned  long  len_uncompress;
 
     unsigned  char  *buffer_compress  =  new  unsigned  char [MaxBufferSize];
     unsigned  char  *buffer_uncompress =  new  unsigned  char [MaxBufferSize];
 
     compress(buffer_compress,&len_compress,(Bytef*)src.data(), src.length());
     uncompress(buffer_uncompress,&len_uncompress,buffer_compress,len_compress);
 
     cout <<  "qt zlib:"  << endl;
     cout <<  "src:\n"  << src.data() <<  ",length:"  << src.size() << endl << endl;
     cout <<  "compress:\n"  << buffer_compress <<  ",length:"  << len_compress << endl << endl;
     cout <<  "uncompress:\n"  << buffer_uncompress <<  ",length:"  << len_uncompress << endl << endl;
}
目录
相关文章
|
5月前
|
开发框架 Linux C语言
C、C++、boost、Qt在嵌入式系统开发中的使用
C、C++、boost、Qt在嵌入式系统开发中的使用
135 1
|
5月前
|
存储 C++
基于C++的简易文件压缩与解压缩工具设计与实现
基于C++的简易文件压缩与解压缩工具设计与实现
152 3
|
5月前
|
设计模式 缓存 编译器
【C++ 元对象系统03】深入探索Qt反射:从原理到实践
【C++ 元对象系统03】深入探索Qt反射:从原理到实践
242 4
|
5月前
|
安全 网络协议 数据安全/隐私保护
掌握Qt和C++:构建你的第一个P2P应用程序
掌握Qt和C++:构建你的第一个P2P应用程序
227 3
|
5月前
|
存储 算法 API
【Qt 基本类】QDateTime类在C++中的应用与深度解析
【Qt 基本类】QDateTime类在C++中的应用与深度解析
163 0
|
5月前
|
存储 网络协议 C语言
【C/C++ 串口编程 】深入探讨C/C++与Qt串口编程中的粘包现象及其解决策略
【C/C++ 串口编程 】深入探讨C/C++与Qt串口编程中的粘包现象及其解决策略
365 0
|
5月前
|
存储 传感器 安全
【串口通信】使用C++和Qt设计和实现串口协议解析器(二)
【串口通信】使用C++和Qt设计和实现串口协议解析器
389 0
|
5月前
|
存储 开发框架 算法
【串口通信】使用C++和Qt设计和实现串口协议解析器(一)
【串口通信】使用C++和Qt设计和实现串口协议解析器
1162 0
|
3月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
145 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
2月前
|
存储 C++
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
下一篇
无影云桌面