Sziasztok!
Kezdő vagyok a c-ben. Nem tudom, hogyan lehet olyan progit írni, ami figyeli, hogy lenyomták-e a billentyűzetet. Mindenhol a getchar függvénnyel találkozom, de ez csak akkor kapja meg a feldolgozásra a karaktereket, ha felhasználó már ENTER-t is leütötte.
És természetesen ehhez kapcsolódó kérdés, hogy mivel lehet abban a pillanatban kiolvasni a leütött karaktert, amikor lenyomták?
További kérdésem: Több karakterbeolvasó példa-programban találtam egy EOF konstanst, amit azért tettek be a progikba, hogy figyeljék mikor van vége az adatbevitelnek. Hogyan lehet a billentyűzetről aktiválni az EOF jelzést. Én rengeteg variációt kipróbáltam, de nem találtam meg. Át kellett térnem az ESC billentyűre, vagy egyszerűen az ENTER-re.
Előre is kösz a segítséget!
Üdv: Pelci.
Hozzászólások
Szabványos módja nincs neki, hogy billentyűleütést érzékelj. Linux alatt curses/ncurses-el megoldható. EOF-ot Ctrl-D-vel tudsz bevinni (linuxon).
Kösz Caro!
Szerencsére Linux-om van. Ez a függvények melyik könyvtárban vannak?
A curses vagy az ncurses azok függvénykönyvtárak. Fel kell tenni a libncurses-dev, vagy hasonló nevű csomagot. Leírás itt: http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/
Ami neked kell, az itt: http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/keys.html
Kösz mégegyszer!
Letöltöttem.
Már hogyne lenne szabványos megoldás! Pusztán ezért kár függeni a cursestől...
Linux es FreeBSD alatt pöccre fordul és megy. A terminál-kezelési beállításokért lásd 'man tcsetattr', a rusnya 'for'-ért meg bocsesz, épp igyekszem nyugodtabban kapkodni :)...
Szerk.: Ja, kilépés ESC-vel, úgyhogy pl. az irány-billentyűk kódjait nem fogod látni, mert azok olyan több byte-os kódsorozatokat generálnak, amik pont ESC-vel kezdődnek, pl. 'fel' = 'ESC [ A', (Linux alatt 'man console_codes'), de ez már tényleg rendszerfüggő. (Na jó, a nyíl-billentyűk talán pont nem, de a funkcióbillentyűk, pgup/pgdn és társaik már igen.)