+ Responder ao Tópico



  1. Olá galera blz? essa é minha primeira visita e tenho a seguinte duvida.

    estou montando um menu em C e usando o comando getch() e armazenando em uma variavel... mas nao consigo usar essa variavel no IF......

    codigo:

    #include<curses.h>
    #include<stdio.h>

    int main(void) {
    initscr();
    int opcao ;
    for (;
    {
    move(3,5);
    printw("[1] Opcao numero 1.");
    move(5,5);
    printw("[2] Opcao numero 2.");
    move(7,5);
    printw("Opcao:");
    opcao=getch();
    move(10,5);
    if (opcao==1){
    printw("Voce digotou a opcao: 1");
    getch();
    break;
    }else{
    printw("Voce digitou a opcao: 2");
    getch();
    break;
    }
    }
    endwin();
    }

  2. olha, nunca mexi com coisas interatvas em C (só com simulações numéricas), mas pesquisando rápidamente sobre o uso de ncurses pra pegar input de 1 char achei isso, veja se é pertinente:
    Question 19.1
    onde dizem que chamando cbreak() antes do getch() que vai desabilitar o buffer de linha, fazendo q não seja necessário esperar pelo caractere de newline, provavelmente produzindo o resultado esperado.

    Dá uma olhada também no exemplo em:
    http://tldp.org/HOWTO/NCURSES-Progra...OWTO/keys.html



  3. Tenta usar opcao do tipo char.

    char opcao;
    opcao = getch();

    e faz a comparação com strcmp (não lembro a syntaxe).

  4. Não pessoal o problema é o seguinte... Tudo bem você recebendo um char e jogar em um int. O problema é você compara o int com 1. Porque o ao jogar o valor '1' (char) em um int ele vira outro valor, que é correspondente ao caracter '1' da tabela ASCII, isto é 49 (em int). Se vc quiser pode fazer o seguinte código


    int opcao;
    (...)
    opcao=getch();
    if(opcao == 49){
    (...)
    }else{
    (...)
    }



    ou caso queira evitar a consulta à tabela ASCII utilize o seguinte código:

    char opcao;
    (...)
    opcao=getch();
    if(opcao == '1'){
    (...)
    }else{
    (...)
    }

    Não se esqueça das aspas simples no trecho opao == '1' pois indica que é um char.

    Avisa ai se der tudo certo, blz?!






Tópicos Similares

  1. algem tem algo de bom sobre o realsat ap
    Por titoneli no fórum Redes
    Respostas: 0
    Último Post: 27-11-2009, 13:57
  2. Tem algo de errado no meu link?
    Por Atos no fórum Redes
    Respostas: 6
    Último Post: 16-09-2004, 22:00
  3. O que tem de errado???
    Por Futuremax no fórum Servidores de Rede
    Respostas: 3
    Último Post: 19-11-2003, 12:15
  4. algo de errado no postfix ??
    Por nopp_lnx no fórum Servidores de Rede
    Respostas: 3
    Último Post: 14-05-2003, 10:19
  5. Respostas: 3
    Último Post: 25-11-2002, 18:22

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L