Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
Preciso pegar um valor digitado pelo usuário (1, 2 ou 3) mas sem ele ter pressionar o ENTER no final.
Estou fazendo um menu com algumas opções.
1 - Gravar
2 - Mostrar
3 - Sair
Grato.
@Neelix
Verifiquei seus links e são bem interessantes, porém estou compilando no Linux. Logo as funções não funcionaram.
Teria alguma outra alternativa?
Obrigado.
Consegui da seguinte maneira, lembrando que estou compilando no Linux:
#include <stdio.h>
#include <termios.h>
#include <unistd.h>
int mygetch ( void )
{
int ch;
struct termios oldt, newt;
tcgetattr ( STDIN_FILENO, &oldt );
newt = oldt;
newt.c_lflag &= ~( ICANON | ECHO );
tcsetattr ( STDIN_FILENO, TCSANOW, &newt );
ch = getchar();
tcsetattr ( STDIN_FILENO, TCSANOW, &oldt );
return ch;
}
int main (void){
char opcao;
printf("Digite uma opcao: ");
opcao = mygetch();
printf("\nA opcao digitada foi: %c", opcao);
return 0;
}
Obrigado.
É o mesmo código do segundo link (que você disse não ter funcionado).
http://www.programmingsimplified.com/c/conio.h/getche
http://www.inf.pucrs.br/~pinho/PRGSWB/Apoio/Getch/getch.html