Estoy programando un juego de consola, (pac-man), y me preguntaba cómo obtendría la entrada del usuario sin que ellos presionen la tecla enter. Miré un poco por Internet y encontré algunas cosas sobre _getch()
pero aparentemente ya no es actual y no se conocen archivos de encabezado que lo declaren a menos que uno construya el suyo, lo que no puedo hacer, ya que todavía soy nuevo en C++. Entonces, ¿cómo construiría un código que pueda hacer esto? Gracias ¿Hay alguna manera de obtener la entrada del usuario sin presionar la tecla enter?
9
A
Respuesta
7
Esto funciona para mí (estoy en Linux):
#include <stdio.h>
#include <unistd.h>
#include <termios.h>
int main()
{
struct termios old_tio, new_tio;
unsigned char c;
/* get the terminal settings for stdin */
tcgetattr(STDIN_FILENO,&old_tio);
/* we want to keep the old setting to restore them a the end */
new_tio=old_tio;
/* disable canonical mode (buffered i/o) and local echo */
new_tio.c_lflag &=(~ICANON & ~ECHO);
/* set the new settings immediately */
tcsetattr(STDIN_FILENO,TCSANOW,&new_tio);
do {
c=getchar();
printf("%d ",c);
} while(c!='q');
/* restore the former settings */
tcsetattr(STDIN_FILENO,TCSANOW,&old_tio);
return 0;
}
Esto hace que la consola sin búfer.
referencia: http://shtrom.ssji.net/skb/getc.html
2
puede usar la biblioteca conio.h y una función _getch() para obtener el aporte de un modo directo y también se puede configurar en bucle para múltiples entradas.
#include<conio.h>
#include<iostream>
using namespace std;
int main()
{
char n='a'; //Just to initialize it.
while(n!='e') // Will exit if you press e.
{
n=_getch();
}
}
Cuestiones relacionadas
- 1. raw_input en python sin presionar enter
- 2. Java: Registrar <ENTER> presionar la tecla en JTextPane
- 3. Capturar presionar la tecla presionar en el campo de entrada de texto en AS3
- 4. ¿Por qué formularios con solo campo de entrada se someten al presionar la tecla enter en la entrada
- 5. ¿Hay alguna forma de evitar que el enlace de envío de knockoutjs envíe el formulario al presionar la tecla enter?
- 6. Al presionar 'enter' en un tipo de entrada = "texto", ¿cómo?
- 7. Asignación de la tecla principal para ejecutar algo sin tener que presionar enter
- 8. Usando AttachConsole, el usuario debe presionar enter para obtener la línea de comando regular
- 9. jqGrid Filtro DatePicker sin presionar la tecla Entrar
- 10. problema ... tecla Enter
- 11. firefox autocompletar 'enter' presionar tecla en autocompletar desencadenar enter on textbox
- 12. Capturar presionar la tecla sin colocar un elemento de entrada en la página?
- 13. Flex 4 detectar si el usuario presiona la tecla enter
- 14. WPF autocompletebox y la tecla enter
- 15. Prevenir la 'tecla Enter' para activar TextWatcher
- 16. jQuery: Impedir la tecla enter
- 17. Evitar el descarte modal al presionar enter
- 18. onEditorAction() no se invoca después de presionar la tecla Enter en el emulador Jelly Bean
- 19. ¿Hay alguna manera de obtener el UID del usuario en la máquina Linux usando Java?
- 20. Al presionar Enter Always Submits Form
- 21. e.que la tecla ENTER habilitada solo si el campo de entrada se enfoca
- 22. Obtener entrada del usuario
- 23. ¿Hay alguna manera de acceder a la API de LinkedIn sin un usuario?
- 24. ¿Hay alguna manera de leer la entrada estándar con JavaScript?
- 25. Manejando la tecla "Enter"/"Return" en Chrome
- 26. C# leyendo la entrada del usuario sin detener una aplicación
- 27. obtener modifierFlags en evento KeyDown sin presionar la tecla sin modificar junto con él!
- 28. Enviar valor al presionar Enter en textarea y presionar Shift + Enter debe ir a la siguiente línea
- 29. ¿Cómo puedo obtener la entrada del usuario sin esperar a entrar en Perl?
- 30. ¿Hay alguna manera de cambiar la barra de direcciones del navegador sin actualizar la página?
La biblioteca de juegos curses soporta una función como esta: http://invisible-island.net/ncurses/man/curs_get_wch.3x.html –
¿Cuál es su plataforma? Linux o Windows? –
Mac. Estoy usando xCode –