pętla z tablicą struktur

0

Cześć mam problem mianowicie nie mam pojęcia w jaki sposób określić granicę pętli z tablicą struktur tak, aby działało
to co się znajduje jako granica to proszę nie zwracać uwagi bo tylko testowałem.

    for(x=0;x<=uzytkownicy[NULL].imie;x++)
       {
    cout<<"========================="<<endl;
    cout<<uzytkownicy[x].imie<<endl;
    cout<<uzytkownicy[x].nazwisko<<endl;
    cout<<uzytkownicy[x].miejscowosc<<endl;
    cout<<uzytkownicy[x].ulica<<endl;
    cout<<uzytkownicy[x].kod_pocztowy<<endl;
    cout<<uzytkownicy[x].nr_mieszkania<<endl;
    cout<<uzytkownicy[x].nr_domu<<endl;
    cout<<uzytkownicy[x].pesel<<endl;
    cout<<uzytkownicy[x].nr_tel<<endl;
    cout<<uzytkownicy[x].stan_konta<<endl;
    cout<<"========================="<<endl;
         }

3

Musisz znać ilość elementów w tablicy. Jeśli jest to typ tablicowy, to std::size(tablica), jeśli kontener, to metoda .size(), lub analogicznie std::size(kontener), jeśli wskaźnik (czyli np. zwyczajna tablica najwzyczaniej przekazana do funkcji), to rozmiar musisz podać. Jeśli masz do czynienia z pierwszym lub drugim, to prościej będzie zrobić ranged for, np.:

struct User {
    ...
};
...
User users[10];
for(const auto user : users) { // referencja? W twoim przypadku na 99,99999% tak
    ...
}
3

Czym jest uzytkownicy? Jak jakąś w miarę współczesną strukturą z std, oferującą iterator, to możesz po prostu skorzystać z range for-a, coś na modłę:

for (auto &x: uzytkownicy) {
    cout << x.pesel << endl;
}

Jak nie, to jak wyżej — musisz wiedzieć, jaki jest rozmiar i bazować na tym.

0

Jeśli stary cpp lub C to możesz spróbować tak:

    struct uzytkownik
    {
        int imie;
        //tutaj reszta pól
    };
    
    uzytkownik uzytkownicy[20];
    // sizeof(uzytkownicy) - wielkość tablicy w B.
    // sizeof(uzytkownik) - wielkosc jednego elementu w B.
    
    for(int x = 0; x < sizeof(uzytkownicy) / sizeof(uzytkownik); x++)
    {
        std::cout<<"========================="<<std::endl;
        std::cout<<uzytkownicy[x].imie<<std::endl;
        // reszta pól
        std::cout<<"========================="<<std::endl;
    }

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