Problemas con kbhit y liberacion de buffer
Publicado por David (3 intervenciones) el 31/10/2002 14:39:56
Hola. Tengo un problema con un programa. Intento que al apretar una determinada tecla, el programa realice unas operaciones. Esto lo hago mediante la orden kbhit del modo:
while(1)
{
if (kbhit())
{
c=getch()
switch(c)
{
......
.........
/*Dependiendo de que tecla se pulsa, se hace una cosa, u otra*/
}
}
}
Hasta aqui bien. El problema, es que cuando se pulsa la misma tecla, la operacion a realizar es otra, pero como la tecla pulsada, ya esta en el buffer, el programa no reconoce la nueva pulsacion de la misma tecla, y entonces sigue haciendo lo mismo. Pense en usar la orden fflush(stdin) , pero no funciona, y en principio, sirve para eliminar el buffer del teclado.
A ver si alguien pudiera ayudarme
Gracias
David
while(1)
{
if (kbhit())
{
c=getch()
switch(c)
{
......
.........
/*Dependiendo de que tecla se pulsa, se hace una cosa, u otra*/
}
}
}
Hasta aqui bien. El problema, es que cuando se pulsa la misma tecla, la operacion a realizar es otra, pero como la tecla pulsada, ya esta en el buffer, el programa no reconoce la nueva pulsacion de la misma tecla, y entonces sigue haciendo lo mismo. Pense en usar la orden fflush(stdin) , pero no funciona, y en principio, sirve para eliminar el buffer del teclado.
A ver si alguien pudiera ayudarme
Gracias
David
Valora esta pregunta


0