Ecco il codice che mi dà errore.
codice:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
typedef struct {
char Cognome[20];
char Nome[20];
int Anno;
int codFacolta;
} Studente;
typedef struct {
int codFacolta;
char nomeFac[20];
} Facolta;
typedef struct {
char Cognome[20];
char Nome[20];
int Anno;
char nomeFac[20];
} Anagrafe;
main()
{
FILE* fp;
FILE* ff;
FILE* fa;
Studente s;
Facolta f;
Anagrafe a;
if ((fp = fopen("Studenti.dat", "rb"))==NULL) {
fprintf(stderr, "\nErrore apertura");
exit(1);
}
while (fread(&s, sizeof(Studente), 1, fp)>0) {
int trovato = 0;
if ((ff = fopen("Facolta.dat", "rb"))==NULL) {
fprintf(stderr, "\nErrore apertura");
exit(2);
}
while (fread(&f, sizeof(Facolta), 1, ff)>0) {
if(s.codFacolta == f.codFacolta) {
trovato = 1;
a.Cognome[20] = s.Cognome[20];
a.Nome[20] = s.Nome[20];
a.Anno = s.Anno;
a.nomeFac[20] = f.nomeFac[20];
if ((fa = fopen("Anagrafe.dat", "ab"))==NULL) {
fprintf(stderr, "\nErrore apertura");
exit(3);
}
fwrite(&a, sizeof(Anagrafe), 1, fa);
}
fclose(fa);
if(trovato) {
if ((fa = fopen("Anagrafe.dat", "rb"))==NULL) {
fprintf(stderr, "\nErrore apertura");
exit(4);}
if(fread(&a, sizeof(Anagrafe), 1, fa))
printf("%s %s %s %d\n",a.Cognome, a.Nome, a.nomeFac, a.Anno);
}
fclose(fa);
}
fclose(ff);
}
fclose(fp);
getch();
}
GRAZIE!