Witam
Mam problem z odczytem danych mam taki oto plik tekstowy:
1
asd
A: sfdg
A: fhs
A: ery
A: xcvb
G: pop
G: rock
G: ssssss
34534
0
1
Co zrobić żeby program rozpoznawał wiersze rozpoczynające się od "A: " i wczytywał tam gdzie ja chce resztę znaków z tego samego wiersza? Analogicznie dla wierszy rozpoczynających się od" G: ".
Napisałem taką funkcje lecz nie działa.
void odczyt(struct album **head_album, struct artysta **head_artysta, struct gatunek **head_gatunek)
{
struct album *point;
FILE *plik;
plik = fopen("album.txt", "r");
if(plik == NULL)
printf("Blad podczas otwierania pliku!");
else
{
int pomoc;
while(feof(plik)==0)
{
struct album *nowy_album = (struct album*)malloc(sizeof(struct album));
struct artysta *nowy_artysta = (struct artysta*)malloc(sizeof(struct artysta));
struct gatunek *nowy_gatunek = (struct gatunek*)malloc(sizeof(struct gatunek));
fscanf(plik, "%d", &nowy_album->id);
fscanf(plik, "%s", nowy_album->tytul);
while(feof(plik)==0)
{
if(getc(plik)==65)
{
nowy_artysta->id_album=nowy_album->id;
fscanf(plik, "%s", nowy_artysta->imie);
fscanf(plik, "%s", nowy_artysta->nazwisko);
if(feof(plik)==0)
dodaj_artysta(head_artysta, nowy_artysta);
}
}
while(feof(plik)==0)
{
if(getc(plik)==71)
{
nowy_gatunek->id_albumu=nowy_album->id;
fscanf(plik, "%s", nowy_gatunek->nazwa);
if(feof(plik)==0)
dodaj_gatunek(head_gatunek, nowy_gatunek);
}
}
fscanf(plik, "%d", &nowy_album->rok);
fscanf(plik, "%d", &nowy_album->stan);
fscanf(plik, "%d", &nowy_album->przesluchany);
if(feof(plik)==0)
dodaj_album(head_album, nowy_album);
}
printf("Odczyt udany!\n");
}
fclose(plik);
}