Salve di nuovo forum,avrei di nuovo bisogno del vostro prezioso aiuto.
Vi presento prima il programma altrimenti non si capisce nulla.
Il file nomi.txt contiene un elenco di nomi e cognomi uno per riga preceduto da una data di nascita:
es
1990 tizio caio
1992 caio sempronio
1994 paolo rossi
1990 aldo giovanni de giacomo
Il programma che devo scrivere in c++ deve leggere da ogni riga il numero corrispondente all'anno
ed estrarre dal file nomi.txt i nomi e cognomi delle persone in tale anno,visualizzandole a schermo.
ES. Digita un anno da tastiera:1992
caio sempronio
aldo giovanni de giacomo
Qui di seguito vi presento il mio codice...ovviamente mi da problemi..quello che mi chiedo perchè non è mai verificata la condizione anno_cercato=anno_letto infatti nel ciclo if non ci entra proprio
basta con le chiacchiere...
codice:#include<stdio.h> #include<stdlib.h> #include<string.h> #define N 10 void visualizza_nati_nel(int anno_cercato,FILE *f); int main() { FILE*f; char nf[10]; int anno_cercato; printf("Digitare il nome del file da aprire:"); scanf("%s",nf); f=fopen(nf,"r"); if(f==NULL) { printf("Errore caricamento file"); printf("\n"); return 0; } printf("Digitare l'anno da cercare:"); scanf("%d",&anno_cercato); visualizza_nati_nel(anno_cercato,f); system("pause"); } void visualizza_nati_nel(int anno_cercato,FILE *f) { int anno_letto; /*char nome_letto[N];*/ int i; char ch; while(fscanf(f,"%d",&anno_letto)!=EOF) if(anno_cercato == anno_letto) { fscanf(f,"%d",stdout); fgetc(f); while((ch=fgetc(f))!='\n' fprintf(f,"%c",stdout); fprintf(f,\n,stdout); } else printf("?");/* devo trovare qualche istruzione per poter saltare la riga*/ }

Rispondi quotando

