博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++ zlib(qt)压缩与解压缩
阅读量:6603 次
发布时间:2019-06-24

本文共 2229 字,大约阅读时间需要 7 分钟。

#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;
}

转载地址:http://sawso.baihongyu.com/

你可能感兴趣的文章
pitfall fields
查看>>
Hadoop实战读书笔记(3)
查看>>
策略模式
查看>>
2012-2013 微软商业智能大调研分析报告
查看>>
iOS7设计规范分享:UI设计基础
查看>>
徐元杰:“淘”里“淘”外,简单营销
查看>>
国内外SNS比较分析
查看>>
iOS Image Filters
查看>>
Dsoframer实现文档在线浏览功能
查看>>
【图解AI】什么是语义分割、实例分割、全景分割
查看>>
调整PHPStorm中文件修改后标签和文件名的颜色与背景色
查看>>
devise登陆页不使用application模版
查看>>
微信小程序,用户私密信息解密
查看>>
android程序在下载文件时报java.io.EOFException
查看>>
swoole项目思维转换 -- 前篇
查看>>
Spring事务的传播属性和隔离级别
查看>>
SpringBoot之WebSocket和SSE
查看>>
在zsh下使用tmux会自动变更窗口名称的问题
查看>>
cpuidle_mediaroom
查看>>
oracle存储过程动态sql写法
查看>>