elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Lectura teclado
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Lectura teclado  (Leído 3,834 veces)
AXA

Desconectado Desconectado

Mensajes: 18



Ver Perfil WWW
Lectura teclado
« en: 4 Enero 2022, 06:35 am »

Quiero leer la letra o la tecla que escribo sin que el programa espere a que precione una.
en pascal esta el keypressed. Aqui no encuentro una funcion que diga si aprieto una tecla para leerla. Y getchar espera a que se apriete una. Quiero hacer un juego y estoy trabada con esto.


En línea

.xAk.


Desconectado Desconectado

Mensajes: 397


F0r3v3R NeWbI3


Ver Perfil WWW
Re: Lectura teclado
« Respuesta #1 en: 4 Enero 2022, 09:04 am »

Depende del sistema. Con las ncurses es muy sencillo, pero no para win.  Con SDL, tienes funciones para ello, para todos los sistemas, o al api de win,  seguro dudas en windows, mírate: Using Keyboard Input

Saludos


« Última modificación: 4 Enero 2022, 09:07 am por .xAk. » En línea


RayR

Desconectado Desconectado

Mensajes: 243


Ver Perfil
Re: Lectura teclado
« Respuesta #2 en: 4 Enero 2022, 16:34 pm »

Como ya te dijeron, no hay forma estándar ni portable. O usas bibliotecas multiplataforma, como las que ya te mencionaron, o recurres a funciones específicas de cada sistema operativo. En Windows, la forma más sencilla y parecida a lo que se hace en Pascal es usar las funciones _kbhit() y _getch() (debes incluir "conio.h"). La primera verifica si hay una tecla presionada, y la segunda lee una tecla (que puede ser una de las "especiales", como Esc, las flechas, etc) sin esperar a que se presione Enter. Obviamente esto es muy distinto a lo que hace getchar().

No hay nada de malo en usar estas funciones cuando es necesario. Te lo digo porque a veces se critica de forma exagerada su uso. Sí, no son estándar de C o C++, pero es que no hay manera estándar de hacer lo que quieres, así que se justifica utilizarlas. Y conio.h es parte del runtime de C de Microsoft desde hace mucho, por lo que todo compilador para Windows que se precie la incluye, como es el caso de MinGW y, obviamente, VC++:

https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/getch-getwch?view=msvc-170
https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/kbhit?view=msvc-170
En línea

Hextor

Desconectado Desconectado

Mensajes: 4



Ver Perfil
Re: Lectura teclado
« Respuesta #3 en: 5 Enero 2022, 13:56 pm »

Es que getchar() intenta leer del fichero de entrada stdin, si hay algo en el buffer lo pilla, sino espera a que metas tú algo. Lo que sucede es que estás intentado usar funciones que están orientadas a meter valores por entrada estandar de ejecución del programa, una consola por lo general.

Para hacer algo como un videojuego en C, deberías utilizar unas librerias a modo de framework que ya implementen funciones que te permiten recibir eventos.

Eso, o si lo estás haciendo de forma didactica, buscar en la api de windows algo que te permita manejar eventos del teclado, yo nunca lo he heco, pero librerias para C de juegos de alguna forma lo tienen que implementar.
En línea

- Hector
.xAk.


Desconectado Desconectado

Mensajes: 397


F0r3v3R NeWbI3


Ver Perfil WWW
Re: Lectura teclado
« Respuesta #4 en: 8 Enero 2022, 19:49 pm »

pruebalo, es divertido hacerlo con ellas





SaludOS
En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Lectura del teclado en una ventana
Java
rommel89 4 2,812 Último mensaje 2 Agosto 2012, 23:07 pm
por leogtz
¿Como romper una lectura de teclado?
Java
exoesqueleto 3 2,459 Último mensaje 6 Julio 2013, 05:49 am
por exoesqueleto
Duda con una lectura de teclado en c++
Programación C/C++
dato000 9 4,000 Último mensaje 28 Diciembre 2013, 15:42 pm
por leosansan
Busqueda binaria en JAVA con lectura de archivos sin ingresar datos desd teclado
Java
Hana29 3 2,578 Último mensaje 9 Diciembre 2015, 16:24 pm
por DarK_FirefoX
Python: Lectura errónea por teclado
Programación General
kurosakisan 2 2,515 Último mensaje 24 Junio 2018, 20:33 pm
por kurosakisan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines