¿Cómo consigo una entrada desde el teclado, sin necesidad de pulsar 'retorno' en C/Mac OsObtener una entrada desde el teclado sin 'retorno' en C
Respuesta
En los sistemas Unix con terminales (supongo que MacOS X califica), entonces necesitas configurar el terminal al modo llamado "cbreak". El punto es que el terminal mantiene los datos hasta que se presiona "return", por lo que no hay nada que pueda hacer su código C, a menos que indique al terminal que no realice dicho almacenamiento en memoria intermedia. Esto a menudo se denomina "modo de interrupción" e implica la función tcsetattr()
.
Un poco de google encontró this code que parece estar bien. Una vez que la terminal se encuentre en el modo de bloqueo, podrá leer los datos tal como vienen con las llamadas estándar getchar()
o fgetc()
.
También es posible forzar la "línea hasta el momento" al presionar Ctrl-D (y cuando se hace en una línea vacía, esto resulta en 0 caracteres legibles, esto indica un final de condición de archivo). – Vatine
Si usted tiene que manejar los detalles a sí mismo, utilizar una variante maldiciones. Si está disponible, prefiera "ncurses" sobre "curses". Tenga en cuenta que algunas teclas son "Meta" que realmente solo modifican los códigos de las teclas base. Hay varios "modos" para leer la entrada clave, que van desde "cocinado", pasando por "parcialmente cocido" hasta "crudo". Cada modo tiene sus propias peculiaridades, lea la documentación cuidadosamente.
A veces es mejor utilizar el código de manejo de claves existente de varias bibliotecas de programación de juegos, he oído hablar de algunos buenos resultados utilizando los bucles de exploración de teclas de SDL. Eso fue hace un tiempo, así que tal vez existan kits de herramientas más nuevos (y mejores).
- 1. Obtener entrada de teclado sin un campo de texto/vista
- 2. ¿Cómo obtener entrada de teclado directa en C++?
- 3. Enviar entrada de teclado a VMWare desde C#
- 4. Entrada de teclado/mouse en C++
- 5. C#: retorno completo desde el método base
- 6. ¿Cómo puedo obtener una UIWebView para enfocarme en una entrada de formulario y abrir el teclado?
- 7. C# Envío de entrada de teclado
- 8. Cómo usar select() para leer la entrada desde el teclado en C
- 9. C++ volver valor sin instrucción de retorno
- 10. ¿Oculta el teclado de entrada en el iPhone sin saber quién es el primero en responder?
- 11. Cómo obtener el estado del teclado en Objective-C sin hacer referencia a NSEvent
- 12. habilitando el "botón de retorno" en un teclado UITextField (objetivo-c/iphone)
- 13. Obtener el valor de retorno de JOptionPane
- 14. Manejo de retorno parcial desde recv() TCP en C
- 15. cómo leer desde entrada estándar sin bloqueo?
- 16. becomeFirstResponder sin ocultar el teclado
- 17. ¿Puedo usar el teclado virtual sin EditText?
- 18. Obtener datos de entrada sin formato
- 19. teclado del teclado numérico no muestra la tecla de retorno en el iphone
- 20. Intentar escribir entrada desde el teclado en un archivo en Golang
- 21. que presentan el formulario de inicio de sesión de entrada cuando la tecla de retorno en el teclado se toca
- 22. En Python intérprete, sin retorno "'"
- 23. Lispy forma de leer la entrada del usuario desde el teclado en Clojure?
- 24. ¿Cómo puedo activar o desactivar manualmente la tecla Retorno en el teclado?
- 25. Retorno del bloque Object Object-C desde la función C
- 26. Consola de teclado concurrente/no bloqueada entrada
- 27. Obtener Latitud Longitud desde una dirección C#
- 28. Creando una entrada para un atajo de teclado personalizable
- 29. ¿Cómo puedo obtener un botón "hecho" en el teclado?
- 30. obtener el valor decimal sin procesar desde la consulta mysqldb
Esto es específico de sistema operativo, por lo que puede obtener mejores respuestas si indica en qué sistema operativo está interesado. – Brian
Se agregó una etiqueta de sistema operativo de la mención en el cuerpo de la pregunta. –
Wow, el texto en realidad decía Mac OS. Totalmente no me di cuenta de esto :) – Brian