DragonFly
(Konrad12315)
#1
Witam mam taki problem:
void Ponow()
{
int nPonow;
std::cout << "Chcesz zagrać jeszcze raz?: [t/n]";
std::cin >> nPonow;
if(nPonow=='t')
{
Pytanie1();
}
else
{
cout << "Naciśni dowolny klawisz, by zakończyć.";
getch();
}
}
Nie wiem jak zrobić, żebym mógł używać przyciski z klawiatury.
Gdy uruchamiam program wciskam t następuje przejście do else…
Z góry dziękuje za pomoc :>
nr47
(Sawyer47)
#2
I w czym problem? Jedynie daj typ char a nie int, czyli char nPonow i działa dobrze.
GA_Thrawn
(Szczepanskimarek)
#3
I będzie przechodził do else bo chcesz porównać liczbę do znaku (rzutujesz z chara na int).
Typ zmiennej nPonow to int a powinien być char lub porównanie do liczny 116 (kod ascii malej litery ‘t’)
mi14chal
(mi14chal)
#4
No to tak musi to wyglądać:
void Ponow()
{
char nPonow;
cout << "Chcesz zagrać jeszcze raz?: [t/n]";
cin >> nPonow;
switch(nPonow)
{
case 't':
cout << "gramy jeszcze raz\n";
system("pause");
break;
default:
cout << "Naciśni dowolny klawisz, by zakończyć.";
getch();
break;
}
}
DragonFly
(Konrad12315)
#5
Hmmm jeszcze bardziej to spaprałeś
Ciągle nie chce działać.
EDIT: Ok podstawiłem funkcje zamist system pause i działa
Dzięki
Fiolek
(Fiołek)
#6
Zamiast “int nPonow;” powinno być “char nPonow;”. Istream nie przypisze do zmiennej typu int litery.
nr47
(Sawyer47)
#7
Czy ten kod też ci się nie kompiluje? Sprawdź, pokaż jakie błędy wypluwa kompilator.
#include
void ponow() {
char nPonow;
std::cout << "Chcesz zagrać jeszcze raz? [t/n] ";
std::cin >> nPonow;
if( 't' == nPonow ) {
std::cout << "Ok\n";
}
else {
std::cout << "Koniec.";
}
}
int main() {
ponow();
}