web-dev-qa-db-ja.com

ファイルをバイト配列として読み取る

ハフマンアルゴリズムのコーディングを担当しています。私は頭の中にすべての問題を整理していますが、ファイルの処理に問題があります。

問題は、アルゴリズムが[〜#〜] any [〜#〜]種類のファイルを圧縮することです。

私の解決策:ファイルをバイト配列として読み取り、int array[256]={0}各バイトごとに、int n対応する値とarray[n]。明確にしなかった場合はお知らせください。

そのため、私は多くの研究を行ってきましたが、あらゆる種類のファイルからバイトを取得する方法とそれらを処理する方法を理解していません。

18
alissonlacerda
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

これで、ファイルの内容を含むバイトの配列ができました。

39
user1274193