Rozdział 15.2
Ostatnio zmodyfikowano 2008-06-26 20:12
Paffciek Temat założony przez niniejszego użytkownika |
Rozdział 15.2 » 2008-06-26 16:02:00 Mam problem mianowicie: W kodzie tamtego proramu, nie wiem do czego jest potrzebna część: while( kbhit() ) { znak = getch(); std::cout << "*znak: '" << znak << "' kod: " << static_cast < int >( znak ) << std::endl; } Gdyz jesli wezme ja w komentarz to i tak program tak samo dziala; |
|
DejaVu |
» 2008-06-26 17:45:08 Trochę wyjąłeś ten kod z kontekstu i czytając go w tym temacie zbyt dużego sensu on nie ma, jednak jeśli uruchomisz sobie program, który jest w rozdziale i naciśniesz np. strzałkę w lewo (lub jakikolwiek inny klawisz specjalny) lub kombinację klawiszy z alt/ctrl, zobaczysz jaka jest różnica w działaniu programu. :) |
|
Paffciek Temat założony przez niniejszego użytkownika |
» 2008-06-26 18:18:30 Czym to jest spowodowane, ktory element tego kodu za to odpowiada? |
|
DejaVu |
» 2008-06-26 20:12:32 Po wciśnięciu klawisza np. w lewo, w buforze klawiatury zajdzie się więcej niż jeden znak. Jeśli istnieje jakikolwiek znak w buforze klawiatury funkcja kbhit() zwróci wartość różną od zera. Aby odczytać znak z bufora klawiatury, wykorzystujesz funkcję getch(). Funkcja getch() pobiera tylko jeden znak z bufora klawiatury i usuwa znak odczytany z bufora (kolejka FIFO - First In First Out => Pierwszy Przychodzi Pierwszy Wychodzi). Funkcja getch() w rzeczywistości działa tak, że odczytuje ona pierwszy znak z bufora klawiatury. Jeśli bufor jest pusty, czeka na wciśięcie klawisza. Wciśnięcie klawisza może spowodować dodanie więcej niż jednego znaku do bufora klawiatury. Z kodu wynika jasno co robią poszczególne części kodu, jeśli rozumie się jak działają powyżej opisane funkcje. |
|
« 1 » |