Função para dar enter sozinho (CMD)

1. Função para dar enter sozinho (CMD)

carlos
kaiko

(usa Outra)

Enviado em 01/06/2013 - 21:27h

Boa noite galera do viva o linux, gostaria de saber como que eu faço para quando o usuário apertar uma tecla, ele não precisar apertar enter para prosseguir, por exemplo, para sair aperte x, se ele apertou x, o programa termina, sem ele precisar apertar enter. Espero que possam me ajudar, grato =D


  


2. Re: Função para dar enter sozinho (CMD)

Uilian Ries
uilianries

(usa Linux Mint)

Enviado em 01/06/2013 - 21:48h

Eu tive quase essa mesma dúvida atrás.

Bom, eu utilizei uma configuração para ler sem aguardar o enter:

Vai precisar da estrutura termios:
$man termios



struct termios terminal;
struct termios old_terminal;
char ch_read;

//Captura as configurações do stdin para uma estrutura termios
if ( tcgetattr(STDIN_FILENO, &(terminal) ) == -1 )
{
//Erro
}

//Copia a estrutura para restaurar as configurações no final
memcpy(&(old_terminal), &(terminal), sizeof(terminal) );


terminal.c_lflag = ~ICANON; //Desabilita o modo canonical(aguardar ENTER)
terminal.c_cc[VTIME] = 0; //Sem tempo de aguardo para leitura, irá aguardar a entrada de algo
terminal.c_cc[VMIN] = 1; //Quantidade minima para retorno de caractere

//Atualiza terminal
tcsetattr( STDIN_FILENO, TCSANOW, &(terminal) );

//Lê entrada
while ( read( STDIN_FILENO, &(ch_read), 1 ) != -1 )
{
//ch_read irá conter o veio do teclado
if ( ch_read == 'x' )
break;
}

//No final, restaure.
tcsetattr( STDIN_FILENO, TCSANOW, &(old_terminal) );









Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts