Stef3k
05-05-2002, 11:07
Ciao a tutti,sto facendo un maledetto programma in C di gestione di una rubrica telefonica di indirizzi e numeri di telefono,tramite Record\Array di strutture.
IL programma stampa un menu' delle operazioni da fare (inserimento dati,ricerca,stampa,cancella,ecc),-> dopo il main vi è la definizione di ogni funzione.
Il problema e' questo: a parte l'inserimento,in tutte le altre funzioni,ci vuole un ciclo FOR perche' si leggano i record dal file.txt e li si memorizzi, e poi un altro ciclo FOR per la stampadel vettore,o per vagliare un nome nel vettore,ecc. (giusto no?),ma anche se nel file i dati ci sono,mi si dice sempre che nn trova nessun dato (cioe' dato inserito inesistente,clausola che ho messo io nel caso nn trovi niente nel vettore):
void ricerca_persona ( ) {
FILE *fp1 ;
if ( ( fp1 = fopen ( “persone.txt” , “r” ) ) == NULL) { printf (“ \nImpossibile aprire il file\n ”) ; exit (1) ; }
int i ; int j ; char C [50] ; char N[50] ; int tr=1 ;
for ( i=0 ; i<DIM ; i++ ) {
fscanf ( fp1 , "%d %s %s " , &P[i].codice_persona , P[i].cognome , P[i].nome ) ;
fgets ( P[i].indirizzo , DIM , fp1 ) ; }
printf ( “\nDigitare cognome e nome della persona separati da un newline\n” ) ;
scanf ( “%s\n%s” , C , N ) ;
for ( j=i ; j<DIM ; j++ ) {
if ( P[j].cognome == C && P[j].nome == N ) {
printf ( “I dati mancanti della persona sono :\n%s\n%d\n” , P[j].indirizzo , P[j].codice_persona );
tr=0 ; } }
if (tr == 1) printf ( “\nDato inserito inesistente\n” ) ;
fclose ( fp1 ) ;
return ; }
dove sta l'errore che nn trova i dati??
Grazie
IL programma stampa un menu' delle operazioni da fare (inserimento dati,ricerca,stampa,cancella,ecc),-> dopo il main vi è la definizione di ogni funzione.
Il problema e' questo: a parte l'inserimento,in tutte le altre funzioni,ci vuole un ciclo FOR perche' si leggano i record dal file.txt e li si memorizzi, e poi un altro ciclo FOR per la stampadel vettore,o per vagliare un nome nel vettore,ecc. (giusto no?),ma anche se nel file i dati ci sono,mi si dice sempre che nn trova nessun dato (cioe' dato inserito inesistente,clausola che ho messo io nel caso nn trovi niente nel vettore):
void ricerca_persona ( ) {
FILE *fp1 ;
if ( ( fp1 = fopen ( “persone.txt” , “r” ) ) == NULL) { printf (“ \nImpossibile aprire il file\n ”) ; exit (1) ; }
int i ; int j ; char C [50] ; char N[50] ; int tr=1 ;
for ( i=0 ; i<DIM ; i++ ) {
fscanf ( fp1 , "%d %s %s " , &P[i].codice_persona , P[i].cognome , P[i].nome ) ;
fgets ( P[i].indirizzo , DIM , fp1 ) ; }
printf ( “\nDigitare cognome e nome della persona separati da un newline\n” ) ;
scanf ( “%s\n%s” , C , N ) ;
for ( j=i ; j<DIM ; j++ ) {
if ( P[j].cognome == C && P[j].nome == N ) {
printf ( “I dati mancanti della persona sono :\n%s\n%d\n” , P[j].indirizzo , P[j].codice_persona );
tr=0 ; } }
if (tr == 1) printf ( “\nDato inserito inesistente\n” ) ;
fclose ( fp1 ) ;
return ; }
dove sta l'errore che nn trova i dati??
Grazie