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*/
}