Pobieranie z pliku txt do tablicy struktur

0

Witam. Mam zadeklarowaną taką strukturę i tablicę struktur

struct osoba
{
       string imie;
       string nazwisko;
       int kod;
       string miejscowosc;
       string kraj;
       string ulica;
       int numer;
}; 
osoba dane[60];

I teraz pobieram dane z pliku txt do tej tablicy poprzez fragment kodu:

 for(int i=0; !plik.eof(); i++)
           {
			   if (i%7==0) {plik>>dane[czlowiek].nazwisko;} 
			   if (i%7==1) {plik>>dane[czlowiek].imie;} 
			   if (i%7==2) {plik>>dane[czlowiek].kod;} 
			   if (i%7==3) {plik>>dane[czlowiek].miejscowosc;} 
			   if (i%7==4) {plik>>dane[czlowiek].kraj;}
			   if (i%7==5) {plik>>dane[czlowiek].ulica;}
			   if (i%7==6) {plik>>dane[czlowiek].numer;
			   czlowiek++; }
           }

I nie mam zielonego pojęcią do czego służą "if(i%7==0)" itd. w tym pobieraniu.
Mógłby ktoś to łopatologicznie wytłumaczyć? Byłbym wdzięczny.
Pozdrawiam.

0

Operator % to "reszta z dzielenia".
1%7 = 1
2%7 = 2
...
7%7 = 0
8%7 = 1
i tak dalej.
W pliku dane zapewne są tak ułożone że w kolejnych liniach masz: nazwisko, imie, kod itd
Wiec jak wczytujesz z pliku dane to musisz wiedzieć do którego pola struktury przypisać dane z tej linii. Nie trudno zauważyć więc że to się będzie powtarzać co 7 linii (7 linii w pliku to są dane dotyczące jednego egzemplarza struktury).

0

Że % to reszta z dzielenia to wiem, chodziło mi raczej o to dlaczego zostało to zastosowane. Gdybym w pliku miał ułożone że w każdej linii mam co innego to by sprawa była prosta, natomiast ja w jednej linii mam wszystko: imię, nazwisko, kod itd. Poszczególne dane oddzielone są od siebie spacjami. I nie wiem o co teraz chodzi bo każda dana może mieć różną długość.

0

A no w takim razie ktoś to zrobił trochę bez sensu i tyle. Zastosowane jest takie samo jak pisałem wyżej, ale można było napisać po prostu w tej pętli:

plik>>dane[i].nazwisko>>dane[i].imie>>dane[i].kod>>dane[i].miejscowosc>>dane[i].kraj>>dane[i].ulica>>dane[i].numer;

i efekt byłby taki sam

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