#pragma hdrstop
#include
#include
#include
#include
#include
#include
void LZ77_Encoding(char *SourceFile,char *DestFile,int SlidingWinSize,
int PreviewWinSize)
{
int m=0;
int i,j,k;
unsigned char comp;
unsigned char comp1;
struct
{
int position;
int length;
unsigned char symbel;
}pre;
unsigned char *file_length;
FILE *input=fopen(SourceFile,"r");
struct stat statbuf;
fstat(fileno(input), &statbuf);
int fsize=statbuf.st_size;
file_length=new unsigned char [fsize];
i=0;
while(!feof(input))
fscanf(input,"%c",&file_length[i++]);
FILE *input1=fopen(DestFile,"w+b");
fwrite(file_length,SlidingWinSize,1,input1);
while(m
{
pre.position=0;pre.length=0;pre.symbel=file_length[m+SlidingWinSize];
for (j=m+SlidingWinSize-1;j>=m;j--)
{
k=0;
do
{
if (file_length[SlidingWinSize+m+k]!=file_length[j+k])
{
if(pre.length
k=PreviewWinSize;
}
else
{
if(k==PreviewWinSize-1 && pre.length
pre.position=j-m;
pre.length=k;
pre.symbel=file_length[m+SlidingWinSize+k];
}
}
k++;
} while(k
if(pre.length==0)
{m+=1;}
else
{
m+=pre.length;
m+=1;
}
comp=pre.position/PreviewWinSize;
comp1=(pre.position%PreviewWinSize)*PreviewWinSize+pre.length;
fwrite(&comp,1,1,input1);
fwrite(&comp1,1,1,input1);
fwrite(&pre.symbel,1,1,input1);
}
fclose(input);
fclose(input1);
}
#pragma package(smart_init)
我是用dev-c++,我直接用書上附的程式去run。
倒底是哪裡出錯了?麻煩各位大大幫幫忙@@
2007-11-17 09:29:39 · 2 個解答 · 發問者 Asia0704 1 in 電腦與網際網路 ➔ 程式設計
因為這個程式並不完整
他只是其中一個 function
這個程式連 main( ) 都沒有怎麼 Run
2007-11-20 12:51:06 · answer #1 · answered by 阿霧 6 · 0⤊ 0⤋
你何不改用 Visual C++ Express?
微軟官方有提供免費的版本,只要用 MSN 帳號就可以註冊使用了。
Dev-C++ 的除錯環境不適合初學者使用。
雖然可以在程式最下方加上 system("PAUSE"); 使程式暫停,但是還是得在除錯環境下才能看到整個執行的過程。
2007-11-17 15:33:53 · answer #2 · answered by Big_John-tw 7 · 0⤊ 0⤋