• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Struktura C++

0 głosów
142 wizyt
pytanie zadane 28 grudnia 2018 w C i C++ przez Shimeo7 Obywatel (1,910 p.)

Uczę się właśnie struktur i robię program, w którym mam wpisać nazwisko i numer telefonu do tego nazwiska, a następnie go wypisać na konsoli. Problem w tym, że niby kompilator nie widzi problemu, ale dziwne rzeczy dzieją się po uruchomieniu programu ;/ np wybierając opcje 1, nic się nie dzieje, jak wybiorę ją jeszcze raz to mogę wpisać, ale po zatwierdzeniu wprowadzonych danych wywala program. Czy ktoś wie, gdzie zepsułem, bo kurcze nie widzę

#include <iostream>
#include <cstdlib>

using namespace std;

struct KsiazkaSerwisowa
{
    string nazwisko;
    int numer;
};

KsiazkaSerwisowa generuj_osobe(int ktore)
{
    KsiazkaSerwisowa osoba[ktore];
    cout << "Podaj nazwisko: ";
    cin >> osoba[ktore].nazwisko;
    cout << "Podaj numer telefonu: ";
    cin >> osoba[ktore].numer;

    return osoba[ktore];
}

int main()
{
    KsiazkaSerwisowa osoba[100];
    int wybor, ktore_w_tablicy;
    ktore_w_tablicy = 0;

    do
    {
        cout << "Co chcesz zrobic? " << endl;
        cout << "------------------" << endl;
        cout << "1. Wygenerowac osobe" << endl;
        cout << "2. Wyswietlic kogo mamy w ksiazce" << endl;
        cout << "3. Wyjdz z programu" << endl;
        cout << "------------------" << endl;
        cout << "Twoj wybor: ";
        cin >> wybor;

        switch(wybor)
        {
        case 1:
        {
            KsiazkaSerwisowa osoba[ktore_w_tablicy] = generuj_osobe(ktore_w_tablicy);
            ktore_w_tablicy++;
            break;
        }
        case 2:
        {
            for(int i=0; i<=ktore_w_tablicy; i++)
            {
                cout << osoba[ktore_w_tablicy].nazwisko << endl;
                cout << osoba[ktore_w_tablicy].numer << endl << endl;
            }
            break;
        }
        case 3:
        {
            exit(0);
        }
        }
    }
    while(wybor != 3);

    return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 28 grudnia 2018 przez Poczprogramista123 Bywalec (2,900 p.)
Robisz takie cos

KsiazkaSerwisowa osoba[0];

To jest blad bo jak mozesz tworzyc statyczna tablice o zerowej liczbie elementow.

Pozatym po co tworzysz w tej funkcji tablice. Jest to bez sensu
komentarz 28 grudnia 2018 przez Poczprogramista123 Bywalec (2,900 p.)
I poczytaj sobie o wskaznikach dynamicznej alokacji pamieci i std::vector.

Podobne pytania

0 głosów
2 odpowiedzi 617 wizyt
pytanie zadane 29 marca 2019 w C i C++ przez Skidrowed Nowicjusz (120 p.)
0 głosów
1 odpowiedź 1,039 wizyt
pytanie zadane 17 stycznia 2019 w C i C++ przez Kaper99 Użytkownik (660 p.)
0 głosów
2 odpowiedzi 295 wizyt

93,425 zapytań

142,421 odpowiedzi

322,647 komentarzy

62,787 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...