compress 与 uncompress

#include <iostream>
using namespace std;
#include "zlib.h"
#define MaxBufferSize 1024*10
int main()
{
	int i;
	FILE* File_src;
	FILE* File_tmp;
	FILE* File_dest;

	unsigned long len_src;
	unsigned long len_tmp;
	unsigned long len_dest;

	unsigned char* buffer_src=new unsigned char[MaxBufferSize];
	unsigned char* buffer_tmp=new unsigned char[MaxBufferSize];
	unsigned char* buffer_dest=new unsigned char[MaxBufferSize];

	//r 以只读方式打开文件,该文件必须存在
	File_src=fopen("C:\\Users\\238\\Desktop\\a12.txt","r");
	//把文件的内容存到 buffer_src 中  返回读取元素的个数
	len_src=fread(buffer_src,sizeof(char),MaxBufferSize-1,File_src);
	for(int i=0;i<len_src;i++)
	{
		cout<<buffer_src[i];
	}
	cout<<endl;
	//函数将 source 缓冲区中的内容压缩到 dest 缓冲区  从右向左
	compress(buffer_tmp,&len_tmp,buffer_src,len_src);
	//w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
	File_tmp=fopen("C:\\Users\\238\\Desktop\\a.txt","w");
	//把压缩后的内容写到File_tmp文件中
	fwrite(buffer_tmp,sizeof(char),len_tmp,File_tmp);
	for(int i=0;i<len_tmp;i++)
	{
		cout<<buffer_tmp[i];
	}
	cout<<endl;
	//从右向左
	uncompress(buffer_dest,&len_dest,buffer_tmp,len_tmp);
	File_tmp=fopen("C:\\Users\\238\\Desktop\\a.txt","r");
	File_dest=fopen("C:\\Users\\238\\Desktop\\dest.txt","w");
	fwrite(buffer_dest,sizeof(char),len_dest,File_dest);
	for(int i=0;i<len_dest;i++)
	{
		cout<<buffer_dest[i];
	}
	cout<<endl;
	return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值