Struktury w C

0

Napisałem następujący kod do zadania:
/Dany jest plik utworzony przy pomocy następującej struktury:
struct ksiazka{
char autor[25], tytul[30];
int rokWydania, liczbaStron;
double cena;
char wypozyczona;
int ileWypozyczen;
};
Napisz funkcję, która do drugiego pliku zapisze wypożyczone książki zadanego autora.
Ścieżki dostępu do pliku przekaż jako parametry funkcji.
/
#include<stdio.h>
#include<stdlib.h>
#define N 100
struct wyp{
char autor[25], tytul[30];
int rokWydania, liczbaStron;
double cena;
char wypozyczona;
int ileWypozyczen;
};
void czy(charkat,charkatalog)
{FILE *p,*r;
p=fopen(katalog,"rb");r=fopen(kat,"wb");
if(p==NULL||r==NULL){printf("Blad \n");}
struct wyp czy[N];
int i=0;
char aut[20];
printf("podaj autora.\n");
gets(aut);
fread(&czy[i],sizeof(struct wyp),1,p);
for(i=0;feof(p)==0;i++)
{
if(czy[i].wypozyczona=='t')
{fwrite(&czy[i],sizeof(struct wyp),1,r);}
fread(&czy[i+1],sizeof(struct wyp),1,p);
}fclose(p);fclose(r);
}
int main()
{
char *katalog;
FILE *p;
p=fopen("katalog","wb");
if(p==NULL){printf("Blad \n");}
struct wyp bibl[N];
int i=0;
printf("podaj autora\n ");
printf("aby zakonczyc, wcisnij [enter] na poczatku wiersza.\n");
while(i<N&&gets(bibl[i].autor)!=NULL&&bibl[i].autor[0]!='\0')
{
printf("teraz podaj tytul.\n");
gets(bibl[i].tytul);
printf("teraz podaj rok wydania.\n");
scanf("%d",&bibl[i].rokWydania);
printf("teraz podaj liczbe stron.\n");
scanf("%d",&bibl[i].liczbaStron);
printf("podaj cene.\n");
scanf("%lf",&bibl[i].cena);
printf("Czy ksiazka jest wypozyczona? t/n.\n");
scanf("%s",&bibl[i].wypozyczona);
printf("podaj liczbe wypozyczen.\n");
scanf("%d",&bibl[i].ileWypozyczen);
fwrite(&bibl[i],sizeof(struct wyp),1,p);
i++;
while(getchar()!='\n')
continue;
if(i<N)
printf("podaj kolejnego autora.\n");
}fclose(p);
char t[]={"kat"},ta[]={"katalog"};
czy(t,ta);
return 0;
}

W takim wypadku mój program zapisuje wszystkie książki wypożyczone jak zrobić żeby były od zadanego autora?
Z gór dzięki!

0

dodać warunek: &&(!strcmp(czy[i].autor,aut))

1 użytkowników online, w tym zalogowanych: 0, gości: 1