Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: surextru en 7 Junio 2017, 20:57 PM

Título: introducir un carácter en la consola de "cin", lo lea automáticamente
Publicado por: surextru en 7 Junio 2017, 20:57 PM
Hola, me gustaría saber como puedo hacer que al introducir un carácter en la consola de "cin", lo lea automáticamente y no tenga que pulsar enter para que lo acepte.

Engel Lex: Los títulos deben ser descriptivos al problema
Título: Re: introducir un carácter en la consola de "cin", lo lea automáticamente
Publicado por: engel lex en 7 Junio 2017, 21:11 PM
esto es manejo de la consola... que OS usas y con que compilas?
Título: Re: introducir un carácter en la consola de "cin", lo lea automáticamente
Publicado por: ezar147 en 9 Junio 2017, 00:43 AM
Solo usa la libreria conio.h y llamas a la funcion getch() seria algo asi

char caracter = getch();

Título: Re: introducir un carácter en la consola de "cin", lo lea automáticamente
Publicado por: engel lex en 9 Junio 2017, 01:13 AM
Cita de: ezar147 en  9 Junio 2017, 00:43 AM
Solo usa la libreria conio.h y llamas a la funcion getch() seria algo asi

char caracter = getch();



esto solo funciona en windows con compiladores de microsoft
Título: Re: introducir un carácter en la consola de "cin", lo lea automáticamente
Publicado por: ezar147 en 9 Junio 2017, 04:20 AM
#include <termios.h>
#include <unistd.h>
#include <stdio.h>


Int main(){
      struct termios t;
      char c;
      tcgetattr(0, &t);
      t.c_lflag &= ~ICANON;
      tcsetattr(0, TCSANOW, &t);
      tcgetattr(0, &t); t.c_lflag &= ~ECHO; tcsetattr(0, TCSANOW, &t);
     
     c = getch();     //captura la tecla sin necesidad de dar enter
   
     //se devuelve la terminal a s estado anterior
     t.c_lflag |= ICANON;
     tcsetattr(0, TCSANOW, &t);
     
}


Asi seria si lo quieres hacer en linux. Tambien funciona con cin<<