• 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

+1 głos
501 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,479 wizyt
+1 głos
2 odpowiedzi 542 wizyt
pytanie zadane 8 czerwca 2022 w C i C++ przez Noizz00 Użytkownik (910 p.)
+1 głos
2 odpowiedzi 1,229 wizyt

93,631 zapytań

142,555 odpowiedzi

323,056 komentarzy

63,139 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2900p. - dia-Chann
  2. 2870p. - DziarnowskiJ
  3. 2827p. - Łukasz Piwowar
  4. 2783p. - raydeal
  5. 2758p. - Adrian Wieprzkowicz
  6. 2713p. - rucin93
  7. 2579p. - Łukasz Eckert
  8. 2523p. - Maurycy W
  9. 2459p. - CC PL
  10. 2082p. - Michal Drewniak
  11. 1885p. - robwarsz
  12. 1851p. - Mariusz Fornal
  13. 1811p. - rafalszastok
  14. 1600p. - Rafał Trójniak
  15. 1588p. - Tomasz Bielak
Szczegóły i pełne wyniki

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

Kursy INF.02 i INF.03
...