ハフマンアルゴリズムのコーディングを担当しています。私は頭の中にすべての問題を整理していますが、ファイルの処理に問題があります。
問題は、アルゴリズムが[〜#〜] any [〜#〜]種類のファイルを圧縮することです。
私の解決策:ファイルをバイト配列として読み取り、int array[256]={0}
各バイトごとに、int n
対応する値とarray[n]
。明確にしなかった場合はお知らせください。
そのため、私は多くの研究を行ってきましたが、あらゆる種類のファイルからバイトを取得する方法とそれらを処理する方法を理解していません。
FILE *fileptr;
char *buffer;
long filelen;
fileptr = fopen("myfile.txt", "rb"); // Open the file in binary mode
fseek(fileptr, 0, 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
これで、ファイルの内容を含むバイトの配列ができました。