testlzw.cpp
来自「LZW压缩算法(VC++实现):比Huffman编码更有效、比算法编码更快捷的压」· C++ 代码 · 共 52 行
CPP
52 行
// TestLzw.cpp:实现文件数据的压缩和解压.
//
#include <windows.h>
#include "LZW.h"
//---------------------------------------------------------------------------
// 压缩函数.
void EncodeFile(LPCSTR szFileName,LPCSTR szFileTarget)
{
FILE *fpr,*fpw;
if((fpw=fopen(szFileTarget,"wb"))==NULL)
return;
int c;
CLZW lzw;
lzw.compress_init(fpw,9);
if((fpr=fopen(szFileName,"rb"))!=NULL) {
while((c=getc(fpr))!=EOF)
lzw.compress_byte(c);
fclose(fpr);
}
lzw.compress_term();
fclose(fpw);
}
//---------------------------------------------------------------------------
// 解压函数.
void DecodeFile(LPCSTR szFileName,LPCSTR szFileTarget)
{
FILE *fpr,*fpw;
if((fpr=fopen(szFileName,"rb"))==NULL)
return;
int c;
CLZW lzw;
lzw.InitLZWCode(fpr,9);
if((fpw=fopen(szFileTarget,"wb"))!=NULL) {
while((c=lzw.LZWReadByte())!=257)
fputc(c,fpw);
fclose(fpw);
}
fclose(fpr);
}
//---------------------------------------------------------------------------
// 主函数.
void main()
{
EncodeFile("calc.exe","calc.tmp");
DecodeFile("calc.tmp","calc_new.exe");
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?