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

Struktura C++

Object Storage Arubacloud
0 głosów
107 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 415 wizyt
pytanie zadane 29 marca 2019 w C i C++ przez Skidrowed Nowicjusz (120 p.)
0 głosów
1 odpowiedź 693 wizyt
pytanie zadane 17 stycznia 2019 w C i C++ przez Kaper99 Użytkownik (660 p.)
0 głosów
2 odpowiedzi 165 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...