Применение структур в языке С
Дан текстовой файл. в нем записан список людей. Ф.И.О., год рождения, знак задиака. Мы вводим знак задиака и программа должна вывести Ф.И.О. и год рождения тех, у которых знак совпал. Код написан, но она не работает...
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
#define DL_FIO 25
#define DL_ZZAD 10
#define DL_DR 8
#define ZAD 10
struct zadiak
{
char fio[DL_FIO];
char dr[DL_DR];
char zad[DL_ZZAD];
};
void Zadiak(FILE *f);
int main()
{
FILE *f;
char n;
clrscr();
f= fopen("zadiak.txt", "r");
if (f==NULL)
{
puts ("fail zadiak.txt ne naiden");
getch();
return 1;
}
do
{
puts ("\n========================================================");
puts ("viberite punkt menu");
puts ("1 - informacia o cheloveke");
puts ("2 - vihod");
puts("===========================================================");
n = getche();
switch(n)
{
case '1': Zadiak(f); break;
case '2': break;
default: puts("\n Nujno najimat 1 ili 2");
}
if (n!='2')
{ puts("\n\nnajmite che nit");
getch();
}
}
while (n != '2');
fclose(f);
return 0;
}
void Zadiak(FILE *f)
{
zadiak tz;
int n=0;
char zcel[ZAD];
puts ("\nvvedite zadiak");
gets(zcel);
while(fgets((char*)&tz,33,f)!=NULL)
{
if(strcmp(tz.zad, zcel)==0)
{
n++;
tz.dr[DL_DR]='\0';
printf("\n %s",tz.fio);
}
}
if(n==0)puts("takogo net!");
}
очень прошу помощь.