Ciao a tutti, ho questo pezzo di codice:

codice:
Esame* read_keyb()
{
    Esame* result = malloc(sizeof(Esame));

    printf("Nome: ");
    fflush(stdin);
    fgets(result->nome, 22, stdin);

    printf("Voto: ");
    scanf("%f", &result->voto);

    printf("Crediti: ");
    scanf("%d", &result->crediti);

    return result;
}
Che serve a leggere i dati di un esame dalla tastiera... Quando gira l'output è questo:

codice:
Nome: Voto:
Dopodichè aspetta l'inserimento del voto.
E' come se fosse rimasto un newline nello stdin e questo mi fa terminare subito la fgets(), ma com'è possibile, dato che appena prima ho chiamato fflush()!?