Procital jsem si clanky a narazil jsem na clanek 12 uloh. (http://programujte.sk/view.php?cisloclanku=2006081101-12-uloh)
Hned v prvni uloze se chce, aby pri stisku klavesy v prubehu beziciho cyklu byl program (cyklus) ukoncen. Snazil jsem se vsude mozne najit reseni, ale bez uspechu. Ulohy jsou obecne k programovacim jazykum, lze to nejak "jednoduse" udelat v c++? Jak mam udelat, aby program neustale monitoroval, zda neni urcita klavesa zmacknuta a pokud ano neco udelal?
Fórum › C / C++
12 uloh - ukonceni programu z beziciho cyklu
No toto je taka zvlastna uloha.V MS-DOSe existovala na to C funkcia kbhit() v conio.h.Lenze ta nieje standardom ANSI/C.Zalezi to od OS na akom to chces spravit.Vo vyzsich jazykoch to tusim nieje tkay problem ale u C/C++ je aj takato blbostka problem.Je viacero rieseni ako to mozes spravit:
- Dve vlakna.V jednom vlakne by si cakal pomocou getch() na ESC znak a zatial druhe vlakno by zapisovalo na vystup inkrementujuce sa cisla v slucke.Ak by v prvom vlakne getch() vratil ESC znak, vtedy by prve vlakno ukoncilo druhe vlakno.
- Vo windowsoch su na to spravy.Odporucam pozriet WM_KEYDOWN a WM_KEYUP.
- Na unixoch mozes pouzit priamo CURSES kniznicu
- Na unixoch napisat kod priamo pre terminal(problem moze nastat s komaptibilitou terminalov).Tam sa da napisat vlastna kbhit() fcia
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
C# - Ukončení nezávisle běžícího programu — založil xmat
C# Zjisteni beziciho programu v pameti — založil GeorgeW
Podmínka pro ukončení cyklu — založil K4BlOs
Pozastavení a ukončení programu — založil HarryV
C# ukončení programu v konzolové aplikaci — založil azor
Moderátoři diskuze