[C++] Pętla while nie rozpozyna swojego działania


(Gawamawa1) #1

Witam,

Odrazu napisze że jestem początkującym programistą i natrafiłem na problem z funkcja kbhit

mam taki prosty kod jak narazie

Jeśli to uruchomię to zaczyna się pokazywać " * " kiedy nacisne jakiś przycisk wczytuje sie do zmiennej 'klawisz' i nic sie dalej nie dzieje. Chce by właśnie po wczytaniu klawisza znów ta środkowa pętla zaczęła się wykonywać, wiecie jak to rozwiązać?


(Gawamawa1) #2

Description_1 przeanalizuj jeszcze raz cały ten kod a później się wypowiadaj :slight_smile:


(Rolek0) #3

Kod wydaje się dobry (mógłbyś używać wcięć, żeby był przejrzysty).

Debuguj :wink:


(Dludwicki) #4
do{

   while (!kbhit()){

      x++;

      gotoxy(x,y);

      cout<<"*";

      Sleep(200);

      };

   klawisz=getch();

   if(klawisz==2) {y++;};

}while(klawisz!=3);

Po 1 tak powinieneś przedstawić kod.

Po 2 funkcja kbhit nie jest zawarta w każdym kompilatorze.

Po 3 pętla działa poprawnie bo warunek jest błędny. Kbhit zwraca 1, !1 to 0. while(0)


(Rolek0) #5

Gdy wciśnięty jest klawisz/jest coś w buforze wejściowym (zależnie od implementacji). W przeciwnym wypadku zwraca 0.