I have an assignment for coding a Huffman algorithm. I have the whole problem organized in my head, but I'm having some trouble with file handling.
The problem is: the algorithm is supposed to compress ANY kind of file.
My solution: read the file as a byte array, then with an
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
Now you have an array of bytes containing the file's contents.