我有一个编码霍夫曼算法的作业.我的头脑里有整个问题,但我在处理文件时遇到麻烦.
问题是:该算法应该压缩任何类型的文件.
我的解决方案:读取文件为字节数组,然后为每个字节使用一个int数组[256] = {0},得到相应的值,并增加数组[n].如果我没有说清楚,让我知道.
解决方法
FILE *fileptr; char *buffer; long filelen; fileptr = fopen("myfile.txt","rb"); // Open the file in binary mode fseek(fileptr,SEEK_END); // Jump to the end of the file filelen = ftell(fileptr); // Get the current byte offset in the file rewind(fileptr); // Jump back to the beginning of the file buffer = (char *)malloc((filelen+1)*sizeof(char)); // Enough memory for file + \0 fread(buffer,filelen,1,fileptr); // Read in the entire file fclose(fileptr); // Close the file