how to prevent user from entering char when needing int in c

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

int main() {
    int userInput;
    char buffer[100];

    printf("Enter an integer: ");

    if (fgets(buffer, sizeof(buffer), stdin) == NULL) {
        printf("Error reading input.\n");
        return 1;
    }

    if (sscanf(buffer, "%d", &userInput) != 1) {
        printf("Invalid input. Please enter an integer.\n");
        return 1;
    }

    printf("You entered: %d\n", userInput);

    return 0;
}