how to compress a file in c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_FILE_NAME 100

void compressFile(const char inputFileName, const char outputFileName);
void writeCompressedData(FILE outputFile, char buffer, int count, char currentChar);

int main() {
    char inputFileName[MAX_FILE_NAME];
    char outputFileName[MAX_FILE_NAME];

    printf("Enter the name of the file to compress: ");
    scanf("%s", inputFileName);

    printf("Enter the name of the compressed file: ");
    scanf("%s", outputFileName);

    compressFile(inputFileName, outputFileName);

    printf("File compressed successfully.\n");

    return 0;
}

void compressFile(const char inputFileName, const char outputFileName) {
    FILE inputFile, outputFile;
    inputFile = fopen(inputFileName, "r");
    outputFile = fopen(outputFileName, "wb");

    if (inputFile == NULL || outputFile == NULL) {
        printf("Error opening files.\n");
        exit(1);
    }

    char currentChar, nextChar;
    int count = 1;

    currentChar = (char)fgetc(inputFile);

    while (currentChar != EOF) {
        nextChar = (char)fgetc(inputFile);

        if (currentChar == nextChar) {
            count++;
        } else {
            writeCompressedData(outputFile, &currentChar, count, currentChar);
            count = 1;
        }

        currentChar = nextChar;
    }

    fclose(inputFile);
    fclose(outputFile);
}

void writeCompressedData(FILE outputFile, char buffer, int count, char currentChar) {
    fwrite(&count, sizeof(int), 1, outputFile);
    fwrite(&currentChar, sizeof(char), 1, outputFile);
}