1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
typedef struct igrac {
char ime[21];
int skor,vreme;
struct igrac *sl;
} Igrac;
void scores()
{
FILE *file;
char ff[21];
file=fopen("scores.txt","r");
if (!file) return;
Igrac *prvi,*poslednji;
int c,r=0;
while (fgets(ff,20,file)!=NULL)
{
c=-1;
switch(r)
{
case 0: if (rec2(ff,"nov\n")) { c=0; r=1; break; } else goto df1;
case 1: if (rec2(ff,"skor\n")) { c=1; r=2; break; } else goto df;
case 2: if (rec2(ff,"vreme\n")) { c=2; r=0; break; } else goto df;
default:
df:if (rec2(ff,"nov\n")) { c=0; r=1; }
else df1:if (rec2(ff,"skor\n")) { c=1; r=2; }
else if (rec2(ff,"vreme\n")) { c=2; r=0; }
}
if (!prvi && c!=0) continue; //printf("\n%s",ff);
if (fgets(ff,20,file)==NULL) break; //printf("\n%s\n%d%d",ff,c,r);
switch(c)
{
case 0:
if (prvi) poslednji->sl=new /*(nothrow)*/ Igrac;
else poslednji=new /*(nothrow)*/ Igrac;
recjerec(poslednji->ime,ff);
if (!prvi) prvi=poslednji;
poslednji=poslednji->sl;
break;
case 1:
poslednji->skor=tobroji(ff); break;
case 2:
poslednji->vreme=tobroji(ff);
}
}
fclose(file);
if (!prvi) return;
printf("\n%d\nerr",prvi->skor); //<- this test line dosen't work (same thing down there)
for (Igrac *igr=prvi; igr; igr=igr->sl) //Testing if it read corectly
printf("%s %d %d",igr->ime,igr->skor,igr->vreme);
}
|