Read a file as byte array
c, file-io, huffman-code
Solution
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 * sizeof(char)); // Enough memory for the file
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.
Problem
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 `int array[256]={0}` for each byte, get it's `int n` corresponding value and increment the `array[n]`. If I didn't make it clear, let me know. So, I've done lots of researching, but don't understand how to get bytes from ANY kind of file and how to handle them.