for(i=0;i<n;i++){ //依次比对Huffman前缀编码 if(memcmp(header[i].bits,bx,header[i].count)==0) /*此函数也为网络借鉴,memcmp函数此处的作用是比较bx的相应位是否与header[i].bits相同, 若前header[i].count均相同,则返回0*/ break;?}?strcpy(bx,bx+header[i].count);?c=header[i].b;?fwrite(&c,1,1,ofp); m++; //m用来统计解压缩后文件的长度?if(m==flength) //检验是否与源文件长度匹配 break;?}?fclose(ifp);?fclose(ofp);?printf("\n\t解压缩文件成功!\n");?if(m==flength) printf("\t解压缩文件与原文件相同!\n\n");?else printf("\t解压缩文件与原文件不同!\n\n");?return;}intmain(){?intc;?while(1){ printf("\tHuffman前缀编码压缩&解压缩BYPB俞映洲\n"); printf("\t1.压缩2.解压缩0.退出\n"); do{ //对用户输入进行容错处理 printf("\n\t*请选择相应功能编号(0-2):"); c=getch(); printf("%c\n",c); if(c!='0'&&c!='1'&&c!='2'){ printf("\t请检查您的输入在0~2之间!请再输入一遍!\n"); } }while(c!='0'&&c!='1'&&c!='2'); if(c=='1') //press(); elseif(c=='2') press(); //调用解压缩子函数 else{ exit(0);?}return0;}