爱车生活aczcn:请教C高手帮我看看这个哈夫曼译码为什么没发实现?急啊!!

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 08:22:47
这个程序运行过可以,但是在译码部分出了问题,译码时只能译头一个单词,遇到空格就结束了,求教高手帮我改一下
void decoding(void)
{
FILE *fp1,*fp2,*fp3;
char ch1,ch2,ch3;
char temp_3[20];
char temp_1[20];
int t1,t3;
if((fp1=fopen("hfmTree.txt","rb"))==NULL)
{
puts(" file error!");
getchar();
exit(0);
}
if((fp2=fopen("TextFile.txt","wb"))==NULL)
{
puts(" file error!");
getchar();
exit(0);
}
if((fp3=fopen("CodeFile.txt","rb"))==NULL)
{
puts("file error!");
getchar();
exit(0);
}

while((ch3=fgetc(fp3))!=EOF)
{
t3=0;
while(ch3!='@')
{
temp_3[t3++]=ch3;
ch3=fgetc(fp3);
}
temp_3[t3]='\0';
while((ch1=fgetc(fp1))!=EOF)
{
if(isalpha(ch1))
{
ch2=ch1;
t1=0;
while((ch1=fgetc(fp1))!=')')
{
temp_1[t1++]=ch1;
}
temp_1[t1]='\0';
if(strcmp(temp_1,temp_3)==0)
{
fputc(ch2,fp2);
rewind(fp1);
break;
}
}
}
}
fclose(fp1);
fclose(fp2);
fclose(fp3);
}