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

Odczyt danych z tablicy struktury

+1 głos
86 wizyt
pytanie zadane 26 listopada 2016 w C i C++ przez czujek22 Mądrala (6,730 p.)

Witam. Otóż robię zadanie 4.6 z książki Stephena Praty ,,Szkoła C++...V6''. Polecenie jest dość długie więc staram się opisać w skrócie: Mam stworzyć strukturę danych taką jaka jest poniżej, zainicjalizować niewielką tablicę tych struktur dowolnymi przykladami. W programie wyświetla się menu, użytkownik podaje odpowiedz jakiej chce listy. Następnie wyświetla się lista wg. wyboru użytkownika. Czyli np. wybierze liste wg imion, to wyswietlaja sie imiona etc.

Problem leży w tym, że po wyborze prawidłowego znaku program nie podaje listy, tylko puste pola, w wypadku odpowiedzi 'a' (imion) wyskakują jakieś emotikony a przy 'd' same zera.

Oto program:

#include <iostream>

using namespace std;



void menu (void)
{
    cout<<"Zakon Programistow Dobrej Woli ZPDW"<<endl;
    cout<<"a. Lista wg imion \t\t"<<"b. Lista wg stanowisk"<<endl;
    cout<<"c. Lista wg pseudonimow \t"<<"d. Lista wg preferencji"<<endl;
    cout<<"q. Koniec"<<endl;

}

struct zpdw {
    char imie[30];
    char stanowisko[30];
    char pseudonim[30];
    int preferencje;
};

int main()
{
    zpdw p1[4] =
    {
        ("Slawek", "Prezes", "Slawcio", 1),
        ("Heniek", "V-Prezes", "Henio", 2),
        ("Maciek", "WEB-DEV", "Gumis", 2),
        ("Zdzislaw", "Przydupas", "Landryn", 0)

    };

    menu();

    char odp;

    while(odp != 'q')
    {
        cout<<"Wybierz odpowiedz: "; cin>>odp;

        switch(odp)
        {
            case 'a': for(int i=0;i<4;i++){cout<<p1[i].imie<<endl;}; break;
            case 'b': for(int i=0;i<4;i++){cout<<p1[i].stanowisko<<endl;}; break;
            case 'c': for(int i=0;i<4;i++){cout<<p1[i].pseudonim<<endl;}; break;
            case 'd': for(int i=0;i<4;i++){cout<<p1[i].preferencje<<endl;}; break;
            case 'q': cout<<"Zegnamy"; break;
        }
    }


    return 0;
}

 

1 odpowiedź

+1 głos
odpowiedź 26 listopada 2016 przez plkpiotr Stary wyjadacz (12,520 p.)
edycja 26 listopada 2016 przez plkpiotr

Użyłeś nieprawidłowych nawiasów podczas inicjalizacji elementów tablicy struktur ( ) zamiast { }.

Kod po drobnej obróbce (niepotrzebne średniki przy case'ach, czy klamerki w pętli for gdzie występuje jedna instrukcja):

#include <iostream>

using namespace std;

void menu (void) {
    cout << "Zakon Programistow Dobrej Woli ZPDW" << endl;
    cout << "a. Lista wg imion \t\t" << "b. Lista wg stanowisk" << endl;
    cout << "c. Lista wg pseudonimow \t" << "d. Lista wg preferencji" << endl;
    cout << "q. Koniec" << endl;
}

struct zpdw {
    char imie[30];
    char stanowisko[30];
    char pseudonim[30];
    int preferencje;
};

int main() {
    zpdw p1[4] = {
        {"Slawek", "Prezes", "Slawcio", 1},
        {"Heniek", "V-Prezes", "Henio", 2},
        {"Maciek", "WEB-DEV", "Gumis", 2},
        {"Zdzislaw", "***", "Landryn", 0}
    };
    menu();
    char odp;
    while (odp != 'q') {
        cout << "Wybierz odpowiedz: ";
        cin >> odp;
        switch (odp) {
        case 'a': for (int i = 0; i < 4; i++) cout << p1[i].imie << endl; break;
        case 'b': for (int i = 0; i < 4; i++) cout << p1[i].stanowisko << endl; break;
        case 'c': for (int i = 0; i < 4; i++) cout << p1[i].pseudonim << endl; break;
        case 'd': for (int i = 0; i < 4; i++) cout << p1[i].preferencje << endl; break;
        case 'q': cout << "Zegnamy"; break;
        }
    }
    return 0;
}

Podobne pytania

0 głosów
1 odpowiedź 50 wizyt
0 głosów
1 odpowiedź 84 wizyt
pytanie zadane 22 kwietnia 2017 w C i C++ przez muchomor Nowicjusz (190 p.)
0 głosów
1 odpowiedź 156 wizyt
Porady nie od parady
Forum posiada swój własny chat IRC, dzięki któremu będziesz mógł po prostu pogadać z innymi Pasjonatami lub zapytać o jakiś problem. Podstrona z chatem znajduje się w menu pod ikoną człowieka w dymku.IRC

57,748 zapytań

102,788 odpowiedzi

212,076 komentarzy

29,694 pasjonatów

Przeglądających: 311
Pasjonatów: 9 Gości: 302

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...