Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) ASCII em C/C++


Risadão

Pergunta

Boa noite galera,

fiz um projeto que utiliza dois servos e controlo eles pelo teclado do pc, porém estou controlando com as teclas: W, S, A e D, mas gostaria de controla-los através das setas. Peguei os códigos ASCII das setas porém não sei como usar. Tentei fazer da seguinte forma:

if (kbhit())
              {
                          switch (getch())
                          {
                                 case '072':
                                      {
                                                .
                                                .
                                                .
                                                    }

onde 072 é o código da seta para cima. Alguém poderia me dizer como usar as setas e as outras teclas tipo ENTER, Insert, Delete, End, etc . . . ? Mesmo se eu coloco no lugar do 072 um código tipo 087 que é o código do W em ASCII tb não funciona. Aguardo respostas. Grato desde já! VLW . . .

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

cara sabe o q acontece?? pelo menos aqui no dev c++.

o q acontece é q quando você digita um caracter q não é da tabela ascii, ele manda o codigo só no segundo getch().

tipo, como o cleyvison disse, o 72 é o H maisculo. e não tem codigo ascii da seta pra cima por exemplo.

ai o q acontece é q sempre q você pressiona uma tecla q não tenha codigo ascii, pelo menos aqui no dev c++ ele retorna -32. e no proximo getch() q você chamar sim ele vai retorna 72. assim ele diferencia teclas q tenham codigo ascii de teclas q não tenham. e você sabe q ele digitou seta pra cima e não H.

exemplo, testa o seguinte codigo:

char x = 0;
    
    while(x != 79) //79 é o END, aperte END pra terminar o loop
    {
        x = getch();
        
        printf("Getch: %d\n", x);
    }[/code] digita qualquer caracter pra você ver, ele vai simplesmente mostrar o codigo dele. agora se você digita seta pra cima por exemplo, ele vai mostrar dois codigos, sendo ele o segundo vai vir do proximo getch() do loop (q ele vai mandar o codigo automaticamente sem q você digite). no seu codigo tenta fazer o seguinte só de teste pra ver se funciona:
[code]x = getch();
x = getch();
switch (x)
{
case 72:
{
.
.
.
}

digita seta pra cima pra ver se funciona. veja q são dois getch().

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...