Estoy escribiendo un código donde necesito obtener información sin que el usuario presione ENTER. El código es básicamente que necesito obtener 4 números del 1 al 6 sin que el usuario presione ENTER todo en una línea.
Intenté hacerlo con getchar() , pero no funciona.
¿Cómo puedo hacer eso?
Aquí está esa parte del código:
int p1 = 0; int p2 = 0; int p3 = 0; int p4 = 0; p1 = getchar() - 48; p2 = getchar() - 48; p3 = getchar() - 48; p4 = getchar() - 48;Esta es una pregunta frecuente de C: 12.5 ¿Cómo puedo leer un carácter a la vez, sin esperar la tecla RETORNO ?
Citar:
Según el sistema operativo que esté utilizando y las bibliotecas que tenga disponibles, es posible que pueda utilizar una (¡o más!) de las siguientes técnicas:
No hay una función estándar para esto.
Hay algunas soluciones personalizadas, por ejemplo, https://www.cs.uleth.ca/~holzmann/C/system/ttyraw.c Pero su kilometraje puede variar.
Sin embargo, si este tipo de uso dinámico de la terminal es fundamental para su programa, recomendaría usar ncurses o algo similar.