Quote Originariamente inviata da torn24 Visualizza il messaggio
Ciao , invece di aiutarti , perchè ci sono persone competenti che possono farlo in maniera ottimale , vorrei chiederti io di aiutarmi a capire il tuo codice .

Vorrei sapere cosa fa questo spezzone di codice ???

codice:
int z =0;
    while((fgets(buffer,sizeof(buffer), f))!=NULL) 
        z++;     // QUI CONTI LE RIGHE DEL FILE , MA BUFFER COSA CONTIENE A FINE CICLO  ?????
    accesso db[z];
    int d;
    for(d=0; d<z; d++){// QUI ESEGUI SSCANF PER IL NUMERO DI RIGHE FILE , MA BUFFER NON E' LA STESSA STRINGA ??????
    sscanf(buffer,"%d:%d:%d %s %d",&db[d].hh,&db[d].mm,&db[d].ss, db[d].C,&db[d].user); 
    
Caspita hai ragione, li c'è un errore logico non me ne ero accorto
Mi serviva il numero delle righe per stabile la dimensione dell'array di strutture accesso ecco perché tutto quel casino...
Quindi il codice giusto dovrebbe essere;
codice:
int z =0;
    while((fgets(buffer,sizeof(buffer), f))!=NULL) {
        z++;
}
    accesso db[z];
   while((fgets(buffer,sizeof(buffer), f))!=NULL) {
    sscanf(buffer,"%d:%d:%d %s %d",&db[d].hh,&db[d].mm,&db[d].ss, db[d].C,&db[d].user);
}
C'è comunque qualcosa che non mi convinge... Non ho usato puntatori (perché non li so usare bene) però mi ricordo che all'esame molti l'hanno fatto con i puntatori (quelli che l'hanno passato)