» »

[c++] Preverjanje, če je bil pritisnjena tipka na tipkovnici

[c++] Preverjanje, če je bil pritisnjena tipka na tipkovnici

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,
SimZ
  • spremenil: Simz ()

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."

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");
}
SimZ


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

C strukture, kazalci naloga pomoc

Oddelek: Programiranje
51461 (1356) DavidJ
»

C osnova

Oddelek: Programiranje
221542 (1057) RunoTheDog
»

Program v C

Oddelek: Programiranje
51928 (1767) darkkk
»

[c++] Kako ugotoviti katera tipka je bila pritisnjena

Oddelek: Programiranje
141480 (1252) 64202
»

C: connect() funkcija, kako nastaviti timeout

Oddelek: Programiranje
231764 (1545) fefko-the-bulldog

Več podobnih tem