[ RMAN @ 04.10.2011. 12:20 ] @
Da li je moguce u nekoj petlji koja se vrti omoguciti detektovanje pritiska dugmeta na tastaturi a da se izvrsavanje petlje ne zaustavi prilikom ucitavanja (kao scanf)?
[ Mihajlo Cvetanović @ 04.10.2011. 12:33 ] @
Imaš funkciju kbhit u hederu conio.h koja vraća 1 ako ima nečeg u input baferu. Moraš samo da isprazniš bafer (da pročitaš ono što se skupilo) ako hoćeš da je koristiš i sledeći put.
[ RMAN @ 04.10.2011. 12:48 ] @
Ok, a kako da ispraznim bafer? Probao sam sa fflush(stdin) ali ne radi. I kako da procitam pritisnut taster?
[ Mihajlo Cvetanović @ 04.10.2011. 13:11 ] @
Pražnjenje bafera nije nikakav magija, nego samo treba da pročitaš na standardni način ono što je korisnik otkucao

Code:
while (kbhit())
  char ch = getchar();


Ako ne bi izvršio ovaj getchar, ili gets, ili scanf, ili šta god, onda bi ti do kraja rada programa kbhit vraćao 1.
[ RMAN @ 04.10.2011. 13:16 ] @
OK, ali na taj nacin mi se zaustavi petlja.. Kad naidje na getchar. Kako to da uradim "u letu"
[ RMAN @ 04.10.2011. 13:19 ] @
Uspeo sam sa getch()
[ Mihajlo Cvetanović @ 04.10.2011. 13:26 ] @
Objasni šta treba da radi program i šta treba da se desi kad korisnik pritisne neki taster.

EDIT: a dobro, uspelo je. Znači getch je bolji za ovo od getchar. Okej.
[ RMAN @ 04.10.2011. 13:53 ] @
getchar() ocekuje enter a getch() ne. Zato mi odgovara.
[ RMAN @ 04.10.2011. 21:07 ] @
Jos nesto :)

Da li mogu da proverim da li se taster drzi. Hocu da namestim da se pritisak samo jednom detektuje a ako se drzi da se ignorise?
[ Mihajlo Cvetanović @ 05.10.2011. 09:40 ] @
E pa to je potpuno drugi tanjir supe, što bi se reklo. Standardne i polu-standardne C/C++ funkcije tu više ne pomažu, i moraš da se obratiš direktno operativnom sistemu za tu funkcionalnost. U Windowsu imaš razne funkcije za rad sa tastaturom, vidi MSDN, odeljak Keyboard Input Functions, a naročito funkciju GetKeyState
[ RMAN @ 05.10.2011. 11:43 ] @
Ok, hvala ti pogledacu cega sve ima.

Pozdrav!