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