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

Kalkulator, Switch po dodaniu getch() omija wszystkie case i wyswietla Nie ma takiej opcji w menu!

Object Storage Arubacloud
0 głosów
269 wizyt
pytanie zadane 1 stycznia 2018 w C i C++ przez Bluu Nowicjusz (140 p.)
#include <iostream>
#include <stdio.h>
#include <cstdlib>
#include <ncurses.h>


using namespace std;

float x, y;
char wybor;

int main()
{

	for (;;)
	{
		cout << "Podaj 1 liczbe: ";
		cin >> x;
		cout << "Podaj 2 liczbe: ";
		cin >> y;
		cout << endl;
		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;





		cout << "Wybierz: ";
		wybor = getch();
		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 zero!";
			else cout << "Iloraz= " << x / y;
		}
		break;

		case '5':
		{
			exit(0);
		}
		break;

		default: cout << "Nie ma takiej opcji w menu!"; break;
		}
		getchar(); getchar();
		system("clear");


	}







	return 0;
}

Podążam kursem p. MZ i wystąpił błąd w kalkulatorze, po wpisaniu zmiennych x i y wysypuje mi cały progam poniewaz nie czeka na podanie jakiego typu obliczenia ma zrobic tylko odrazu przechodzi do opcji default. Nie wiem jak sobie z tym poradzić. Odrazu uprzedzam <ncurses.h> to odpowiednik <conio.h> w linuxie.

komentarz 1 stycznia 2018 przez niezalogowany
Podaj jakiś przykładowy input dla którego program nie działa.
komentarz 1 stycznia 2018 przez Bluu Nowicjusz (140 p.)
Wpisuje liczbe x potem y i jak tylko zatwierdzam y odrazu wyswietlas sie menu i Nie ma takiej opcji w menu bez mozliwosci wyboru dzialania.

2 odpowiedzi

0 głosów
odpowiedź 2 stycznia 2018 przez smg Użytkownik (760 p.)
To dziwne, bo mnie działa to prawidłowo. Wpisuję liczby, po czym wybieram coś tam z menu i wyskakuje wynik.

A spróbuj zamienić:

wybor=getch(); na cin>>wybor;

i zobacz czy dalej problem występuje.
–1 głos
odpowiedź 1 stycznia 2018 przez 10kw10 Pasjonat (22,880 p.)
Sprobuj uzyc cin.ignore(); przed getch()
komentarz 1 stycznia 2018 przez Bluu Nowicjusz (140 p.)
dzieje sie to samo.

Podobne pytania

–1 głos
3 odpowiedzi 515 wizyt
+3 głosów
2 odpowiedzi 10,825 wizyt
0 głosów
1 odpowiedź 281 wizyt
pytanie zadane 30 maja 2019 w C i C++ przez patryksz163 Nowicjusz (120 p.)

92,632 zapytań

141,500 odpowiedzi

319,879 komentarzy

62,012 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!

...