Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alex Camargo

scanf sem o ENTER

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.