La funzione fgets restituisce un char*, non un char.
La funzione fgetc restituisce un char.

Inoltre, castando da char a int, si ottiene soltanto il valore ascii del char.

EDIT: Ha ragione $$$, ho letto ora.