ciao a tutti
ho fatto questo programmino per leggere un file .dat e portare il suo contenuto in una struttura
ho fatto il caso di solo 2 record.
il primo record me lo mette nella struct esattamente mentre il secondo, mi legge solo il cognome diverso mentre gli altri campi li legge uguali a quelli del record precedente
non riesco a capire dove sbaglio
codice:
#include <stdio.h>
#include <stdlib.h>
#define maxchar 30
#define N 2

/*
 *
 */
int main() {

    struct selezione{
        char cognonome[maxchar];
        int giorno;
        char mese[maxchar];
        int stanza;
        int notti;
    }sele[N];

    int;
    char cognomenome[maxchar];
    int giornoini;
    char meseini[maxchar];
    int numsta;
    int numnot;


    FILE *cfPtr; /*cfPtr = punta al file albergo.dat*/


    /*scrive il file*/
    if ((cfPtr = fopen("client.dat", "w")) == NULL){
        printf ("Il file non può essere aperto");
    }

    else{
        printf ("Inserisci i dati : \n");
        printf ("Inserisci EOF per terminare l'inserimento \n");
        scanf ("%s%d%s%d%d", cognomenome, &giornoini, meseini, &numsta, &numnot);

	while (!feof(stdin)){
	fprintf (cfPtr, "%s%d%s%d%d\n", cognomenome, giornoini, meseini, numsta, numnot);
        scanf ("%s%d%s%d%d", cognomenome, &giornoini, meseini, &numsta, &numnot);

        }
		 fclose(cfPtr);

        }

         

	 

     /*fopen apre il file*/
    if ((cfPtr = fopen("client.dat", "r")) == NULL){
        printf ("Il file non può essere aperto");
    }
    else{
		i = 0;
        printf ("%-10s%-10s%-10s%-10s%-10s", "Cognome", "Giorno", "Mese", "Stanza", "Notti");
        fscanf (cfPtr, "%s%d%%s%d%d", cognomenome, &giornoini, meseini, &numsta, &numnot);


            strcpy(sele[i].cognonome,cognomenome);
            sele[i].giorno = giornoini;
            strcpy(sele[i].mese,meseini);
            sele[i].stanza = numsta;
            sele[i].notti = numnot;
			i++;
	
    
      

         while (!feof(cfPtr)){
            fscanf (cfPtr, "%s%d%s%d%d", cognomenome, &giornoini, meseini, &numsta, &numnot);

            strcpy(sele[i].cognonome,cognomenome);
            sele[i].giorno = giornoini;
            strcpy(sele[i].mese,meseini);
            sele[i].stanza = numsta;
            sele[i].notti = numnot;

            i++;

         }
          fclose(cfPtr);
}

		for (i = 0; i < N; i++){
        printf ("\n%s%d%s%d%d", sele[i].cognonome,  sele[i].giorno, sele[i].mese, sele[i].stanza, sele[i].notti);
           }



	system("PAUSE");

    return 0;

}