PROBLEMA FILE TXT

di il
3 risposte

PROBLEMA FILE TXT

Salve a tutti ragazzi,sto riscontrando un problema con i file .txt. Su questo file sono salvati i nomi degli utenti che si registrano. Infatti alla fine di ogni registrazione ed inserimento da tastiera dei dati vi è :
fprintf(file_utenti, "%d\t%s\t%s\t%d\t%d\t%d\t%s\t%s\n",utente[count_utenti].id_utente, utente[count_utenti].nome_utente, utente[count_utenti].cognome_utente, utente[count_utenti].giorno_nascita, utente[count_utenti].mese_nascita, utente[count_utenti].anno_nascita, utente[count_utenti].username, utente[count_utenti].password);

Il problema lo risconto con lo \n. Infatti quando vado a stampare la lista attraverso:
while(!feof(f)){
fscanf(f,"%s %s %d %d %d %s %s",utente.nome_utente, utente.cognome_utente, &utente.giorno_nascita, &utente.mese_nascita, &utente.anno_nascita, utente.username, utente.password);
printf("%s %s %d %d %d %s %s\n",utente.nome_utente, utente.cognome_utente, utente.giorno_nascita, utente[i].mese_nascita, utente[i].anno_nascita, utente[i].username, utente[i].password);
i++;
}

mi compare l'ultima riga con i caratteri strani dovuto allo \n che nel file testo lascia l'ultima riga vuota.

COME FACCIO A RISOLVERE QUESTO PROBLEMA?

3 Risposte

  • Re: PROBLEMA FILE TXT

    Usa i tag code quando mostri del codice, altrimenti non si legge nulla

    E comunque, mi dispiace, ma non si è capito quale sia il tuo problema.
  • Re: PROBLEMA FILE TXT

    La butto lì senza verificarla...

    Siccome fscanf() restituisce il numero dei dati letti correttamente, potrebbe essere sufficiente verificare che abbia effettivamente letto i sette dati richiesti:
    while(!feof(f)){
        int letti = fscanf(f,"%s %s %d %d %d %s %s",/*i campi della struttura*/);
        
        if( 7 == letti )
            printf("%s %s %d %d %d %s %s\n",/*i campi della struttura*/);
        
        i++;
    }
    Non prenderla per buona e controlla se è vero o non è vero quel che ipotizzo.
  • Re: PROBLEMA FILE TXT

    Se non sbaglio mi pare che tu scriva un dato in più ad inizio riga che poi non leggi.
Devi accedere o registrarti per scrivere nel forum
3 risposte