Ciao a tutti, io ho creato un file binario in C che contiene una sorta di rubrica caratterizzata dalla seguente struttura:
ho creato una funzione che permette all'utente di inserire nuovi contatti quindi immaginatevi ora il file binario con all'intero 2 o 3 contatti inseriti dall'utente tutti caratterizzati dalla stessa struttura Contatto come sopra.codice:typedef struct{ char nominativo[DIMN]; char telefono[DIMT]; char datanascita[DIMD]; char comune[DIMC]; }Contatto;
Ora volevo chiedervi: se volessi stampare a video una specie di "rubrica" del tipo:
Nominativo Telefono Data di nascita Comune
nominativo1 tel1 data1 comune1
nominativo2 tel2 data2 comune2
nominativo3 tel3 data3 comune3
ho fatto una funzione del genere:
ma stampa cose senza senso miste a cose "semi-corrette"....sicuramente non funziona come dovrebbe.... se utilizzo fseek(fp,i*sizeof(contatto),SEEK_SET);codice:/* Nome: stampa_tutto Descrizione: stampa la rubrica Input: il puntatore al file binario, gli elementi presenti in rubrica Output: nessuno */ void stampa_tutto(FILE *fp, int n){ Contatto contatto; char nominativo[DIMN],telefono[DIMT],datanascita[DIMD],comune[DIMC]; int i; for(i=0;i<n;i++){ fseek(fp,i*sizeof(contatto),SEEK_SET); fread(nominativo,1,DIMN,fp); fread(telefono,1,DIMT,fp); fread(datanascita,1,DIMD,fp); fread(comune,1,DIMC,fp); printf("%s %s %s %s",nominativo,telefono,datanascita,comune); } printf("\n"); return; }
mi sposto di blocco in blocco fra i contatti ma non so come accedere ad esempio al dato "telefono" del terzo contatto, oppure al dato "comune" del primo contatto, ecc...
qualcuno mi dia delle dritte!!!! Grazie mille!

Rispondi quotando