Buffer del teclado?

Estado
Cerrado para nuevas respuestas.

Franeg95

CARP
Ex-Staff
Hola gente!

Andaba con un problemita.

Estoy usando esta API:

GetAsyncKeyState

En un while. Lo que me sucede es que hago la comprobacion y lo comprueba muchisimas veces, osea si yo compruebo si se presiona una tecla, hace la primera pero es como que queda cargada y en la comprobacion siempre le sigue dando el mismo resultado (yo solo la apreto una vez).

Entonces pense que podia ser porque quedaba cargado el buffer del teclado por lo que meti un fflush(stdin) pero le importo poco porque lo hace igual.
Lo que me llama la atencion es que llega un momento que se detiene.
 

Vernet

Dex Systems ????????????Ó?
Anda fijandote cuantas veces pasa, si son siempre iguales o si te modifica en algo.

Igual, fijate del modo en que lo usas, porque no tenes que usar siempre la funcion en el while. Digamos que cuando vos llamas a GetAsyncKeyState, esto "espera" a que ingreses una tecla, y ni bien la ingresas te la detecta. Osea que si lo repetis muchas veces esto estaría spameando a la funcion.

Es complicado de explicar xD, pero mostrame como lo estas usando

suerte
 

TwIsT

GrafionAO
El GetAsyncKeyState no te dice si una tecla está presionada? Si vos tocas una tecla "una vez" la vas a mantener un tiempito apretada puede ser por eso.

Podes usar una variable la pones en true cuando aprieta y en falso cuando suelta y checkear por el GetAsyncKeyState y por la booleana.

OFF:Dale dunkan te apuesto el "especialista de programación"
Lo que me interesa es el rosita claramente
 

Dunkan

Veterano
TwIsT dijo:
Si vos tocas una tecla "una vez" la vas a mantener un tiempito apretada puede ser por eso.
Estás seguro?



No entiendo bien que queres hacer jaja, hacele uns sleep en el while igual si me dejas un código de a ver que estas intentado sería mejor jaja
 

Shab

Aprendiz Lvl 2
No creo que tenga nada que ver con el buffer del teclado
Ademas, la funcion a asincronica, no trabaja con un buffer, asi que de nada te sirve limpiarle el buffer a la funcion (porque no tiene xd ) o a la entrada por defecto :p

Proba mandandole Sleep y si no funciona avisa
Ahora te hago una pregunta: ¿Estas usando std::cin?
 

Franeg95

CARP
Ex-Staff
Claro, no había calculado que los ciclos del bucle son muy rápidos.

Era lo que decía Twist(tecnicamente todos concluyeron en lo mismo). Clave el Sleep y paulatinamente bajo la cantidad hasta que encontre el justo.

Les agradezco mucho!!!
 
Estado
Cerrado para nuevas respuestas.
Arriba