pętla z tablicą struktur

pętla z tablicą struktur
PI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 9
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.

Kopiuj
    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;
         }

B4mbus
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 11
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.:

Kopiuj
struct User {
    ...
};
...
User users[10];
for(const auto user : users) { // referencja? W twoim przypadku na 99,99999% tak
    ...
}
Althorion
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1620
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łę:

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

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

Trisolaris
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 16
0

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

Kopiuj
    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;
    }

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.