Mam problem ze skompilowaniem poniższego zadania. Być może chodzi o deklarację funkcji "Odczyt pliku" jednak sam nie jestem w stanie zidentyfikować problemu. Proszę o pomoc.
/*Zadanie 3
W pliku tekstowym in.txt znajdują się napisy (nie więcej niż X linii), postaci:
Imię Nazwisko RokUrodzenia
Imię oraz nazwisko to ciągi o maksymalnej długości MAX. Utworzyć tablicę struktur, zawierających informacje odczytane z pliku
in.txt. Jeden element tablicy odpowiada informacji zapisanej w jednej linii pliku.
Do pliku tekstowego out.txt zapisać listę najstarszych osób (postać zapisu taka sama jak w pliku in.txt).
Program główny ma wyglądać następująco:
*/
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define N 10
#define MAX 20
typedef struct{
char imie[MAX];
char nazwisko[MAX];
int rok;
}Osoba;
int Odczytpliku(const char* n, Osoba tab[]);
void TworzPlikWynikowy(const char* nazwa,Osoba tab[],int licznik, int min_rok);
int MinRok(Osoba tab[], int licznik);
int main(void)
{
int licznik, min_rok;
Osoba tab[N];
licznik = OdczytPliku("in.txt", tab);
if (licznik==0)
return 1;
min_rok = MinRok(tab, licznik);
TworzPlikWynikowy("out.txt", tab, licznik, min_rok);
return 0;
}
int Odczytpliku(const char* n, Osoba tab[])
{
FILE *plik = fopen(n,"r");
if(plik==NULL)
return 0;
int i;
for(i=0;i<N;i++)
{
if(fscanf(plik,"%s", tab[i].imie)==EOF)
break;
fscanf(plik, "%s", tab[i].nazwisko);
fscanf(plik, "%d", &tab[i].rok);
}
fclose(plik);
return i;
}
int MinRok(Osoba tab[], int licznik)
{
int minimum=tab[0].rok;
int i;
for(i=1;i<licznik;i++)
if(tab[i].rok<minimum)
minimum=tab[i].rok;
return minimum;
}
void TworzPlikWynikowy(const char* nazwa,Osoba tab[],int licznik, int min_rok)
{
FILE *plik = fopen(nazwa,"w");
if(plik==NULL)
return;
int i;
for(i=0;i<licznik;i++)
{
if(tab[i].rok==min_rok)
{
fprintf(plik,"%s %s %d \n", tab[i].imie, tab[i].nazwisko, tab[i].rok);
}
}
fclose(plik);
}