Ho sostituito alla scanf dell'username, la fgets, ma mi da errore:
codice:
#include <stdio.h>
#include <stdlib.h>
#define USER_FILE "user.txt"

typedef struct{
        char user[30];
        char pass[30];
        char email[50];
        int age;
} user; 

int main(void){
    FILE *fp;
    user u;
    if (!(fp=fopen(USER_FILE,"a"))){
                                    printf("Errore\n");
                                    exit(1);                                
    }
    printf ("Inseririmento di un nuovo utente: \n\n");
    printf ("Username: ");
    fgets(user,sizeof(user),*fp);
    printf ("Password: ");
    scanf ("%s",u.pass);
    printf ("Email: ");
    scanf ("%s",u.email);
    printf ("Eta': ");
    scanf ("%d",&u.age);
    
    /* Scrivo i dati sul file */ 
    fprintf(fp, "%s\t%s\t%s\t%d\n", u.user, u.pass, u.email, u.age);
    printf("Dati scritti con successo.\n");
    fclose(fp);
}
Dov'è che sbaglio?