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

Odcinek 6 kurs c++, Kalkulator nie działa getchar

VPS Starter Arubacloud
+1 głos
329 wizyt
pytanie zadane 4 listopada 2016 w C i C++ przez Beksio Początkujący (260 p.)

Dzień dobry,

Kontynuując naukę po chwilach zwątpienia postanowiłem jeszcze raz bliżej przyjrzeć się opcji switch oraz po tym jak obejrzałem odcinek kursu samemu spróbować odtworzyć program. Nie udało mi się tego zrobić przez pewne przeoczenie, więc wróciłem do odcinka i resztę zrobiłem razem P. Zelentem. Niestety pojawił się mały problem:

#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <stdio.h>

using namespace std;
float x,y;
char wybor;

int main()
{
    cout << "Kalkulator z podstawowym menu\n"
         << "Eliot Beker\n"
         << "2016-11-04"<<endl;
 while (true)
 {
    cout <<endl;
    cout << "Podaj pierwsza wartosc: ";
    cin >> x;
    cout << "Podaj druga wartosc: ";
    cin>> y;
    cout <<endl;

    cout << "*    Menu glowne    *\n"
         << "* 1. Dodawanie      *\n"
         << "* 2. Odejmowanie    *\n"
         << "* 3. Mnozenie       *\n"
         << "* 4. Dzielenie      *\n"
         << "* 5. Koniec programu*\n";
    cout<<endl;



    wybor = getchar();
    switch(wybor)
    {
     case '1':
        {
            cout << "Suma = "<<x+y;
        }
     break;

     case '2':
        {
            cout << "Roznica = "<<x-y;
        }
     break;
     case '3':
        {
            cout << "Iloczyn = "<<x*y;
        }
     break;
     case '4':
        {
            if (y==0)
            {
                cout << "Nie dzielimy przez 0!";
            }
            else
            {
                cout << "Iloraz = "<<x/y;
            }
        }
    break;
     case '5':
        {
            exit(0);
        }
    break;
    default:
        {
            cout << "Nie ma takiej liczby";
        }
    break;
    }
    getchar();getchar();
    system("cls");

 }

    return 0;
}

 

Nie rozumiem czemu w wypadku tego programu nie mam możliwości wyboru. Zanim wprowadziłem opcję getchar(), program działał bez zarzutu, gdy dodałem getchar() program po odczytaniu liczb x i y odrazu wczytuję opcję default. Nie mogę dojść co jest źle w tym co napisałem i gdzie popełniłem błąd przy przepisywaniu rozwiązanego przykładu z tablicy.

Proszę o pomoc.  

1 odpowiedź

0 głosów
odpowiedź 4 listopada 2016 przez Cinnamon Użytkownik (640 p.)
wybrane 4 listopada 2016 przez Beksio
 
Najlepsza

wybor=getch();

Spróbuj tak ;)

Do tego używaj pełnych funkcji 

cout << "MENU GLOWNE" << endl;
cout << "-----------------" << endl;
cout << "1. Dodawanie" << endl;
cout << "2. Odejmowanie" << endl;
cout << "3. Mnozenie" << endl;
cout << "4. Dzielenie" << endl;
cout << "5. Koniec programu" << endl;



I po default nie potrzeba break;

komentarz 4 listopada 2016 przez Beksio Początkujący (260 p.)
Bardzo dziękuję, przy okazji jaka jest w takim razie różnica między getchar() a samym getch()?
1
komentarz 4 listopada 2016 przez niezalogowany
Funkcja getch() pobiera znak, nie umieszcza go w buforze (prościej mówiąc nie czeka na naciśnięcie entera) i od razu wyświetla wartość liczbową znaku na ekranie, a funkcja getchar() pobiera znak i umieszcza go w buforze (czyli czeka na enter). Powinieneś zadbać o przenośność programu, a więc używać funkcji getchar(), bo pochodzi z biblioteki standardowej.
komentarz 5 listopada 2016 przez Cinnamon Użytkownik (640 p.)
Kolega mk dokładnie to wyjaśnił ;)

I cieszę się, że pomogłem ;)

Podobne pytania

0 głosów
1 odpowiedź 4,076 wizyt
+1 głos
2 odpowiedzi 384 wizyt
pytanie zadane 8 czerwca 2022 w C i C++ przez Noizz00 Użytkownik (910 p.)
+1 głos
2 odpowiedzi 693 wizyt

92,453 zapytań

141,262 odpowiedzi

319,086 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...