Ciao ragazzi,come da titolo ho un problema con questa funzione.Sto provando a risolvere un esercizio
ma mi da problemi,forse sarò io...
L'esercizio che sto facendo opera su due file.
Nel primo,su ciascuna riga vi sono un elenco di dati di uno studente. Per semplicità ho scritto soltanto nome,cognome e anno di nascita.
La richiesta del problema è che
copi nel secondo file tutte le righe,cioè i dati degli studenti,che non sono nati nel 1998.
Il mio ragionamento è questo:con una fgets leggo una singola riga per volta ed estraggo l'unico intero contenuto,cioè l'anno di nascita.
Se l'anno è diverso da 1998 lo copio.
Allego primo file e codice:
Nel primo file ho scritto:
Mario Rossi 1997
Luca Antonini 1998
Loris Capirossi 1994
Valentino Rossi 1990
Annibale Asdubale 1998
Andrea Gomez 1992
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp1,*fp2;
char buffer[100];
int anno=0;
fp1=fopen("primo.txt","r");
if(fp1==NULL){
printf("\nErrore in apertura file\n\n");
exit(EXIT_FAILURE);
}
fp2=fopen("secondo.txt","w");
if(fp2==NULL){
printf("\nErrore in apertura file\n\n");
exit(EXIT_FAILURE);
}
//FIN QUI HO SOLAMENTE APERTO I DUE FILE
while(fgets(buffer,100,fp1)!=NULL){
sscanf(buffer,"%d",&anno); //LA SSCANF ESTRAE L'ANNO DALLA STRINGA
if(anno!=1998){
fputs(buffer,fp2);
}
}
//CHIUDO I FILE
fclose(fp1);
fclose(fp2);
return 0;
}