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;
}
目录
相关文章
|
16天前
|
开发框架 Linux C语言
C、C++、boost、Qt在嵌入式系统开发中的使用
C、C++、boost、Qt在嵌入式系统开发中的使用
29 1
|
21天前
|
存储 C++
基于C++的简易文件压缩与解压缩工具设计与实现
基于C++的简易文件压缩与解压缩工具设计与实现
12 3
|
24天前
|
存储 网络协议 C语言
【C/C++ 串口编程 】深入探讨C/C++与Qt串口编程中的粘包现象及其解决策略
【C/C++ 串口编程 】深入探讨C/C++与Qt串口编程中的粘包现象及其解决策略
76 0
|
24天前
|
存储 传感器 安全
【串口通信】使用C++和Qt设计和实现串口协议解析器(二)
【串口通信】使用C++和Qt设计和实现串口协议解析器
45 0
|
24天前
|
存储 开发框架 算法
【串口通信】使用C++和Qt设计和实现串口协议解析器(一)
【串口通信】使用C++和Qt设计和实现串口协议解析器
61 0
|
29天前
|
安全 前端开发 C++
C++视角下的Qt按钮:从基础应用到高级定制(二)
C++视角下的Qt按钮:从基础应用到高级定制
44 2
|
29天前
|
XML JSON 算法
C++视角下的Qt按钮:从基础应用到高级定制(一)
C++视角下的Qt按钮:从基础应用到高级定制
86 2
|
29天前
|
Linux 数据处理 C++
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用(一)
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用
69 0
|
29天前
|
XML 安全 C++
DBus类型系统以及在Qt和C++ 中的使用(二)
DBus类型系统以及在Qt和C++ 中的使用
41 0
|
29天前
|
XML 存储 Unix
DBus类型系统以及在Qt和C++ 中的使用(一)
DBus类型系统以及在Qt和C++ 中的使用
32 0

热门文章

最新文章

推荐镜像

更多