Forum » Programiranje » [c++] Preverjanje, če je bil pritisnjena tipka na tipkovnici
[c++] Preverjanje, če je bil pritisnjena tipka na tipkovnici
![](https://static.slo-tech.com/stili/avatar_gray.gif)
Simz ::
LP,
imam en problem in sicer, da ne najdem funkcije v c++, ki bi preverjala, če je bil pritisnjen katerokoli znak.
Podobno si lahko naredil v pascalom s keypressed funkcijo. Nekaj sem že našel in sicer za windows platformo, rabil pa bi za linux ( v upoštev ne prideta kbhit in kepressed()) - g++ compiler
Hvala
LP,
imam en problem in sicer, da ne najdem funkcije v c++, ki bi preverjala, če je bil pritisnjen katerokoli znak.
Podobno si lahko naredil v pascalom s keypressed funkcijo. Nekaj sem že našel in sicer za windows platformo, rabil pa bi za linux ( v upoštev ne prideta kbhit in kepressed()) - g++ compiler
Hvala
LP,
SimZ
- spremenil: Simz ()
![](https://static.slo-tech.com/stili/avatar_gray.gif)
napsy ::
Primer iz Beej's Guide to Network Programming:
/* ** select.c -- a select() demo */ #include <stdio.h> #include <sys/time.h> #include <sys/types.h> #include <unistd.h> #define STDIN 0 // file descriptor for standard input int main(void) { struct timeval tv; fd_set readfds; tv.tv_sec = 2; tv.tv_usec = 500000; FD_ZERO(&readfds); FD_SET(STDIN, &readfds); // don't care about writefds and exceptfds: select(STDIN+1, &readfds, NULL, NULL, &tv); if (FD_ISSET(STDIN, &readfds)) printf("A key was pressed!\n"); else printf("Timed out.\n"); return 0; }
"If you die, you die. But when you live you live. There is no time to waste."
![](https://static.slo-tech.com/stili/avatar_gray.gif)
Simz ::
Najprej bi se rad zahvalil za odgovor. Sicer sem to ze napisal. Problem nastane, ko hočem to uporabiti v zanki. Prvic se deluje pravilno, potem pa sploh ne caka več, ampak uposteva, kot bi ze blo nekaj pritisnjeno (zanka brez konca)! Poskusil sem tudi z FD_CLR(STDIN,&readfds) ampak zadeva ne deluje.
npr.
for(;;)
{
select(STDIN+1, &readfds, NULL, NULL, &tv);
if (FD_ISSET(STDIN, &readfds))
printf("A key was pressed!\n");
else
printf("Timed out.\n");
}
npr.
for(;;)
{
select(STDIN+1, &readfds, NULL, NULL, &tv);
if (FD_ISSET(STDIN, &readfds))
printf("A key was pressed!\n");
else
printf("Timed out.\n");
}
SimZ
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | C strukture, kazalci naloga pomocOddelek: Programiranje | 1483 (1378) | DavidJ |
» | C osnovaOddelek: Programiranje | 1570 (1085) | RunoTheDog |
» | Program v COddelek: Programiranje | 1960 (1799) | darkkk |
» | [c++] Kako ugotoviti katera tipka je bila pritisnjenaOddelek: Programiranje | 1504 (1276) | 64202 |
» | C: connect() funkcija, kako nastaviti timeoutOddelek: Programiranje | 1807 (1588) | fefko-the-bulldog |