Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Pomoc przy switch...case

Ostatnio zmodyfikowano 2009-05-04 17:33
Autor Wiadomość
ceunori
Temat założony przez niniejszego użytkownika
Pomoc przy switch...case
» 2009-04-18 21:58:16
Witam mam problem z switch...case. Jak włączam program to jak kliknę byle jaki guzik (prócz tych wpisanych w kodzie) to już nawet te które w kodzie są wpisane np. [ESC] nie działają. Mam też problem z tym że jak np. kliknę [w] to mi przełącza tam gdzie ma ale wtedy [ESC] nie działa. No i jeszcze ostatni problem xD Jak klikam [w] to mi wyskakuje to co ma wyskoczyć ale miga mi  konsola.

C/C++
int main()
{
    menu();
    unsigned char znak = getch();
    bool koniec = false;
    while( koniec != true )
    {
        switch( znak )
        {
        case 27: //ESC
            koniec = true;
            break;
           
        case 119: //w
            walka();
            break;
        }
    }
    return( 0 );
}

Z góry dziękuję za pomoc :D
P-5832
malan
» 2009-04-18 22:07:42
O tym było już gdzieś na forum... Dokładnie to tutaj. Nawet w Twoim temacie ;p.

To, że nie da się wyjść z programu to tylko dlatego, że w pętli w której chce wczytywać znak nie odczytuje go za pomocą getch().
Wniosek: wstaw do do pętli 'znak=getch();'.
P-5833
Riant
» 2009-04-18 22:08:58
Z tego co wiem w switch używa się nie kodów klawiszy, a wcześniej zdefiniowanych.
Znaczy, jeśli używasz kodu klawisza, to powinieneś to jakoś zaznaczyć.
Ale chyba się mylę. Nie mam głowy dziś. :P
Jak źle to sorry. Do jutra się upewnię.

Edit: Już się upewniłem, pokręciłem. Sorry. ;-)

Wybaczcie posta poniżej ale nawet nie wiem jak dwa wysłałem... A nie można usuwać.
P-5834
Riant
» 2009-04-18 22:12:44
P-5835
ceunori
Temat założony przez niniejszego użytkownika
» 2009-04-18 22:42:28
Aha przepraszam za zaśmiecanie forum ale jestem początkującym :D
P-5836
driver1995
» 2009-04-18 23:30:32
C/C++
int main()
{
    menu();
    unsigned char znak; //tutaj tylko deklarujesz...
    bool koniec = false;
    while( koniec != true )
    {
        znak = getch(); //tutaj musi być funkcja getch() ponieważ za każdym razem jak coś wciśniesz to program sprawdza czy jest to ESC albo w... jeśli nie to znowu możesz wcisnąć, bo jest to w pętli... Tak jak było wcześniej, to wciskałeś jeden klawisz (jaki kolwiek) a następny już nie działał...
        switch( znak )
        {
        case 27: //ESC
            koniec = true;
            break;
           
        case 119: //w
            walka();
            break;
        }
    }
    return( 0 );
}

Było powiedziane, ale cóż.... ;););)
P-5837
GoldWolf
» 2009-05-04 17:32:08
Zamykamy.

Jakieś dejavu przeżywam ;-).
P-6411
GoldWolf
» 2009-05-04 17:33:01
Zamykamy.

Jakieś dejavu przeżywam ;-).
P-6412
« 1 »
  Strona 1 z 1