Witam,

Mam problem z wypełnieniem struktury danych z pliku *.txt - kod poniżej. Przy pierwszym przejściu (a=0) wszystko jest OK. Gorzej gdy a > 0 - wtedy każda zmienna ze struktury poza .lp przyjmuje taką wartość jaką aktualnie ma zmienna linia... Nie mam pomysłu dlaczego i co z tym zrobić, dlatego prosze o pomoc.

void main(void)
{
 int *wsk;
 int liczba=0;
 wsk = &liczba;

 struct ksiazka_tel {
  int lp;
  char * imie;
  char * nazwisko;
  char * telefon;
 };

 ksiazka_tel baza[49];

 ifstream ksiazka("ksiazka.txt");

 char linia[30];
 int ilelinii=0;
 int ilewpisow;

 while (!ksiazka.eof())
 {
  ksiazka.getline(linia, 27);
  ilelinii++;
 }
 ksiazka.close();

 if(ilelinii - 1 == 0)
 {
  ilewpisow = 0;
 }
 else
 {
  ifstream ksiazka("ksiazka.txt");
  int a=0, b;
  for(b=1; b<ilelinii; b++)
  {
   ksiazka.getline(linia, 27);

   if(b==((a * 3) + 1))
   {
    baza[a].lp = (a + 1);
    baza[a].imie = linia;
   }

   if(b==((a * 3) + 2))
   {
    baza[a].nazwisko = linia;
   }

   if(b==((a * 3) + 3))
   {
    baza[a].telefon = linia;
    a++;
   }
  }
  ksiazka.close();
 }
}

Zawartość ksiazka.txt:
Marian
Kolasa
+34918888718432
Adam
sa
+349188887181
Mateusz
Mas
+3491888871834
(pusta linia)