Erro no uso da biblioteca termios.h [RESOLVIDO]

1. Erro no uso da biblioteca termios.h [RESOLVIDO]

lucas
ljparaujo

(usa Debian)

Enviado em 02/11/2018 - 12:02h

Bom dia pessoal,

Estou treinando para usar a biblioteca termios.h
estou criando um programa para para capturar a entrada do teclado sem usar o ENTER, mas estou tendo um problema pois não a saída quando aperto qualquer tecla, menos a tecla ESC, que na tabela ASC tem o valor 27.

Aqui estão os codigos:

.h
#ifndef TECLAS_H
#define TECLAS_H

int mygetch(void);

#endif


.c
#include "teclas.h"
#include <termios.h>
#include <unistd.h>

int mygetch(void)
{
struct termios oldt,newt;
int ch;
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;
}


main.c
#include <stdio.h>
#include "teclas.h"

int main()
{
int tec;

printf("\nPRESSIONE: ...\n");

do
{
tec = mygetch();


switch(tec)
{
case 1:
printf("\n digito 1\n");
break;

case 2:
printf("\n digito 2\n");
break;

case 3:
printf("\n digito 3\n");
break;
}
}while(tec != 27);

return 0;
}


Não a nenhuma saída na tela, apenas quando aperto o ESC para sair.
Já de ante mão agradeço qualquer ajuda.


  


2. MELHOR RESPOSTA

Paulo
paulo1205

(usa Ubuntu)

Enviado em 02/11/2018 - 16:13h

Se você apertar Control-A, possivelmente vai ter saída de que apertou o dígito 1, se apertar Control-B, que apertou o dígito 2...

Se você quiser que a tecla 1 produza a saída de dígito 1, tente usar '1' em lugar de 1.

3. Re: Erro no uso da biblioteca termios.h [RESOLVIDO]

lucas
ljparaujo

(usa Debian)

Enviado em 02/11/2018 - 22:11h

Obrigo pela ajuda, era exatamente assim a solução !!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts