English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

#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 {pre.position=j-m;pre.length=k-1;pre.symbel=file_length[m+SlidingWinSize+k-1];}
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 電腦與網際網路 程式設計

2 個解答

因為這個程式並不完整
他只是其中一個 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

fedest.com, questions and answers