31/03/14 21:56
pierotofy90
Salve forum,avrei 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...
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...
#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) { fgetc(f); while(((ch=fgetc(f))!=EOF) &&( ch!='\n')) putchar(ch); fprintf(f,\n,stdout); } else printf("?");/* devo trovare qualche istruzione per poter saltare la riga*/ }
Ultima modifica effettuata da pierotofy90 31/03/14 21:57
aaa