Czyszczenie bufora klawiatury
Ostatnio zmodyfikowano 2013-04-23 18:29
Burgers Temat założony przez niniejszego użytkownika |
Czyszczenie bufora klawiatury » 2013-04-23 11:53:36 Zdaje mi sie, że nie rozumiem jak działa czyszczenie bufora i moj kod nie działa tak jak bym tego chciał. Oto on: #include<iostream> #include<conio.h> #include<Windows.h> using namespace std; void main() { while( 1 ) { if( kbhit() ) { cout << "Podales cos. Robie to tylko raz"; fflush( stdin ); } else { cout << "oczekuje az cos podasz"; } Sleep( 1000 ); } system( "pause" ); }
Chciałem, żeby wyswietlało sie co sekunde 'oczekuje az cos podasz' a jak wcisne jakis klawisz (narazie byle jaki;p) to wypisze 'Podales cos. Robie to tylko raz', wykona jakis tam blok instrukcji i wyczysci bufor klawiatury i znowu co sekundy bedzie wyświetlał, że 'oczekuje az cos podasz'. Niestety jak coś wcisne to juz cały czas wyswietla mi 'Podales cos. Robie to tylko raz'. Jakby ktoś mógł napisać gdzie tkwi błąd mojego rozumowania to bym był wdzięczny. PS. Jakby kod się źle wkleił to przepraszam, ale pierwszy raz wklejam ;) |
|
pekfos |
» 2013-04-23 14:56:51 Nie powinno się używać fflush() dla stdin. if( kbhit() ) { getch(); } |
|
ShayQ |
» 2013-04-23 18:29:06 Haha sorki chłopaki ja tu kombinuję, a przecież już wszystko działa xD Co do tego czyszczenia bufora to wydaje mi się, że cin.sync() byłoby lepsze niż fflush(stdin) |
|
« 1 » |