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

question-closed Pobieranie jednego znaku char do switcha.

Object Storage Arubacloud
0 głosów
475 wizyt
pytanie zadane 17 grudnia 2015 w C i C++ przez Łukasz Wasilewski Mądrala (5,190 p.)
zamknięte 17 grudnia 2015 przez Łukasz Wasilewski

Dobry wieczór,

żeby zadać pytanie najpierw pokażę kod:

void SI::levSI()
{
	bool goodChoice=false;
	while (!goodChoice)
	{
		cout << endl << "Podaj poziom trudnosci [e(asy), n(ormal), h(ard)]";
		char l2;
		cin >> l2;
		char l = getchar();
		switch (l2)
		{
		case 'e':
		case 'E': player::lev_si='e';
			goodChoice = true;
			break;
		case 'm':
		case 'M': player::lev_si='m';
			goodChoice = true;
			break;
		case 'h':
		case 'H': player::lev_si='h';
			goodChoice = true;
			break;
		default: cout << "Zla odpowiedz, zapytam ponownie" << endl;
			break;
		}
	}
}

Problem polega na tym, że muszę pobrać jedynie jeden znak. Funkcja działa i ten znak pobiera, ale gdy napiszę np: "eqqe", to zapisuje pierwszy znak, ale mimo to wypisuje "Zla odpowiedz(...)", co psuje mi estetykę programu.

Myślę, że jeszcze nie raz trafię na ten problem dlatego uznałem, że zamiast go ominąć poszukam odpowiedzi.  
 

EDIT: Zapomniałem dodać, że próbowałem zarówno cin, cin.get(char) - podkreśla mi char w nawiasie i nie kompiluje, oraz getchar(). Żaden z tych sposobów nie działa.

komentarz zamknięcia: Problem rozwiazany

1 odpowiedź

+2 głosów
odpowiedź 17 grudnia 2015 przez Józef Mądrala (5,200 p.)
wybrane 28 grudnia 2015 przez Łukasz Wasilewski
 
Najlepsza

Skorzystaj z biblioteki conio.h i wpisz w kodzie:
 

char l2;
l2 = getch();


Teraz program będzie pobierał pojedynczy znak.

P.S. Staraj się nie używać na początku nazw zmiennych małej literki l, ponieważ jest ona podobna do cyfry 1. Trochę to utrudnia czytanie kodu.

komentarz 17 grudnia 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Co do tego P.S.

Owszem, literka l jest podobna do 1, ale należy pamiętać, że nazwy zmiennych nie mogą się zaczynać od cyfr, więc nie powinno być z tym problemu :) Pozdrawiam.
komentarz 17 grudnia 2015 przez Józef Mądrala (5,200 p.)
Oczywiście, że nie mogą i takie ich wykorzystanie nie jest błędem. Chodziło mi jedynie o to, że wpływają negatywnie na czytelność kodu. Przy tak krótkich programach nie ma to znaczenia, ale przy większych może okazać się kłopotliwe.
komentarz 17 grudnia 2015 przez Łukasz Wasilewski Mądrala (5,190 p.)
Rozwiązanie działa, dziękuję za pomoc. Uwagę odnośnie nazewnictwa zmiennych jak najbardziej wezmę do siebie. :)

Podobne pytania

0 głosów
1 odpowiedź 211 wizyt
pytanie zadane 11 stycznia 2017 w C i C++ przez Revane Początkujący (310 p.)
0 głosów
2 odpowiedzi 241 wizyt
pytanie zadane 28 lipca 2015 w C i C++ przez Skoroś Rose Nowicjusz (170 p.)
0 głosów
1 odpowiedź 3,410 wizyt
pytanie zadane 15 grudnia 2015 w C i C++ przez pineapple505 Nowicjusz (120 p.)

92,551 zapytań

141,393 odpowiedzi

319,522 komentarzy

61,936 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!

...