Ir para conteúdo

POWERED BY:

Arquivado

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

Yur1T3ch

[Resolvido] Leitura de caracteres

Recommended Posts

Ao invés de usar scanf para a leitura de um texto, estou fazendo a leitura caracter a caracter (pro usuário não derrubar o programa, por segurança, enfim, vocês sabem). Depois de lido o caracter, faço as verificações para ver se não foi teclado um ENTER, TAB, BACKSPACE, etc. Após isso (já presumindo que trata-se de um caracter imprimível), eu faço uma última verificação:

 

if((caracter>31)&&(caracter<123))
Isto deve-se ao fato de eu querer que o programa apenas aceite os elementos de código entre 32 e 122 (pois acredito ser o menor intervalo que tenha caracteres alfanuméricos, espaço, alguns sinais de pontuação básicos, parênteses, etc) da tabela ASCII de 7 bits (pois não apresenta os problemas que se tem, por exemplo, com os caracteres acentuados na manipulação de arquivos texto).

 

Mas o meu problema é o seguinte: ele está aceitando as teclas direcionais como letras (K, M, P e H para esquerda, direita, para cima e para baixo, respectivamente). Eu gostaria de saber como eu faço para evitar isso.

 

Ah, o caracter é lido através da função getch da biblioteca conio2 (ok, ela é muito restritiva, mas para eu me divertir no console do Windows não tem melhor), desta forma:

 

caracter=getch();
Grato, desde já, pela atenção e (possível) ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aparentemente, as teclas direcionais usam os códigos 37 até 40.

 

http://msdn.microsoft.com/en-us/library/aa243025(VS.60).aspx

Valeu!

 

É que, para eu saber os códigos, eu só montava um programinha que aceitava uma tecla entrada e imprimia ela em inteiro, porém quando testei os direcionais ele mostrava (se eu não me engano) 32 sempre, para todas as direções.

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.