Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[C++] Menu na switchach wyświetla się kilka razy

Voltago 30 Gru 2011 19:27 1802 7
  • #1 30 Gru 2011 19:27
    Voltago
    Poziom 2  

    Witam
    Mam do napisania bazę danych którą obsługiwać będzie się na switchach.
    Całe menu zapętliłem tak by po zakończeniu wykonywania jednej z instrukcji menu pokazało się ponownie. Niestety wyświetla się ono 2 lub 3 razy jednocześnie z nieznanego mi powodu.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    W mainie wywołuje jedynie tę funkcje.
    Funkcje umieszczone w switchach obsługują mi liste jednokierunkową i działają poprawnie więc ich nie wklejałem.

    0 7
  • #2 30 Gru 2011 19:46
    1900800
    Użytkownik usunął konto  
  • Pomocny post
    #3 30 Gru 2011 19:50
    mickpr
    Poziom 39  

    Dodaj

    Kod: c
    Zaloguj się, aby zobaczyć kod

    po bloku instrukcji switch -
    scanf odczytuje ci i klawisz (1,2,3) i znak ENTER

    0
  • #4 30 Gru 2011 19:53
    Voltago
    Poziom 2  

    Błąd w temacie, kod napisany w C.
    To część pracy zaliczeniowej do napisania bez użycia C++.

    Dodano po 2 [minuty]:

    mickpr napisał:
    Dodaj

    Kod: c
    Zaloguj się, aby zobaczyć kod

    po bloku instrukcji switch -
    scanf odczytuje ci i klawisz (1,2,3) i znak EOL

    To samo występuje przy użyciu scanf jak i getchar. Nie wiem jak inaczej mogę pobrać x wykorzystywany w switchu i co to zmieni.

    Edit:
    Hehe git! To działa tylko trochę po lamersku. Mogę to jakoś inaczej rozwiązać tzn wyczyścić jakoś bufor scanfa żeby zachował tylko jeden znak?
    Poza tym jedna z funkcji w switchu też wczytuje mi znaki i przez tego kolejnego scanfa nie chce działać.

    0
  • Pomocny post
    #6 30 Gru 2011 20:01
    marcinj12
    Poziom 40  

    Nie powinno tam być przypadkiem:

    Kod: c
    Zaloguj się, aby zobaczyć kod
    ?

    0
  • Pomocny post
    #7 30 Gru 2011 20:03
    mickpr
    Poziom 39  

    marcinj12 napisał:
    Nie powinno tam być przypadkiem:
    Kod: c
    Zaloguj się, aby zobaczyć kod
    ?


    oczywiście że powinno... wszak 'x' to char!
    o tym, że w switch brak "default" też nie wspomnę.

    0
  • #8 30 Gru 2011 21:52
    Voltago
    Poziom 2  

    Dziękuję za pomoc kod poprawiony:)

    0