• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

eMineiro

Caractere das Setas

3 mensagens neste tópico

Olá básicamente estou fazendo um menu em C em que gostaria de fazer com que uma setinha andasse de cima para baixo ou vice-versa

ex.:

> INCLUIR

    EXLUIR

    EDITAR

    SAIR

Em que esta seta ">" , ande de cima para baixo , como se fosse um marcador para o usuário saber qual opção escolher.

Usando o comando gotoxy(); eu consegui fazer o cursor se movimentar, porém de forma nao interativa.

Então descobri o getch(); para armazenar o que o usuário digitou, mas ai fiquei na duvida:

Se o usuário apertou o botao para baixo , qual caractere , hexadecimal , inteiro ele vai me retornar??

Então eu dei um printf("%d",x); para saber , ele me retornou 224.

Mas se eu aperto a tecla para cima , ele me retorna 224

Se eu aperto a tecla para baixo , ele me retona 224

E ai como faço??? (Basicamente eu quero comparar se o que ele digitou foi uma seta para cima , baixo , direita , esquerda , control , shift , enter , backspace , insert......)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

provavelmente o 224 e o enter. imprime o ficheiro stdin todo. e ve o que da.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O enter tem o código 10 ou 13, ou uma combinação dos dois, dependendo do sistema operativo.

Se bem me lembro, as teclas especiais como as setas retornam 2 códigos, um para indicar que é uma tecla especial, e outro para indicar qual é a tecla.

Infelizmente não me lembro de qual é o procedimento para decifrar as teclas especiais.

EDIT: Experimenta o seguinte:

#include <stdio.h>
#include <conio.h>

int main() {
int input;
do {
	input = getch();
	printf("key ID: %d\n", input);
} while(input != 27); //27 é o código da tecla ESC

return 0;
}

e vais ver que o printf escreve 2 códigos de cada vez que pressionas uma seta: 1º é sempre o 224, e depois um de 72, 80, 75, ou 77, que correspondem respectivamente às setas para cima, baixo, esquerda e direita.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora