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

(resolvido) tecla ESC para finalizar


cleyvison

Pergunta

Caros amigos, sou novo aqui no forum e comecei a estudar c/c++ agora e já me deparei ccom um problema.

Minha situação é a seguinte, preciso colocar no meu programa uma função que quando o usuário teclar "ESC" o programa encerre.

alguém pode me ajudar?

este é o codigo, coisa simples mas, ta faltando a sainda com o acionamento da tecla "ESC".

=========================

#include <stdio.h>
#include <stdlib.h>
//Funcao soma
double soma (double a, double b)
{
       double soma;
       soma=a+b;
       return (soma);
}

//Funcao multiplicacao
double produto (double a, double b)
{
       double produto;
       produto=a*b;
       return (produto);
}

//Funcao subtracao
double sub (double a, double b)
{
       double sub;
       sub=a-b;
       return (sub);
}

//Funcao divisao
double divi (double a, double b)
{
       double divi;
       divi=a/b;
       return (divi);
}


int main(int argc, char *argv[])
{
    double a,b;
    char op;
    printf ("Digite o Primeiro Numero: ");
    scanf ("%lf", &a);
    printf ("Digite o Segundo Numero: ");
    scanf ("%lf", &b);
    printf ("Escolha uma Opcao: \n");
    printf ("Somar       (S)\n"
            "Subtrair    (U)\n"
            "Multiplicar (P)\n"
            "Dividir     (D)\n"
            "Sair        (Q)\n");
    printf ("Opcao: \n");
    scanf ("%c", &op);
    op = getch();
    switch (op)
    {
           case 'S': printf (" Voce escolheu Somar, o resultado e: %lf\n",soma (a,b));break;
           case 'U': printf (" Voce escolheu Subtrair, o resultado e: %lf\n",sub(a,b));break;
           case 'P': printf (" Voce escolheu Multiplicar, o resultado e: %lf\n",produto(a,b));break;
           case 'D': printf (" Voce escolheu Dividir, o resultado e: %lf\n",divi(a,b));break;
           case 'Q': system("exit");break;
           default: printf ("Opcao Invalida\n");
    }
    
  
    system("\n PAUSE");    
    return 0;
}

Editado por cleyvison
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

cara, tenha pacencia, se você postou a 4 horas atras, é bem provavel q ninguém vai ter respondido, as pessoas não ficam entrando no forum a cada 5 minutos. ainda mais de fim de semana, espere sempre uns dois dias pra ver se ninguém vai responder.

agora, quanto ao esc, você ta falando naquele getch(), ta querendo substituir o Q?? se for, o codigo do esc é 27. faca assim:

case 27: system("exit");break;

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo bom dia, so dei uip porque havia esquecido de póstar o codigo, qunado o fiz vi que o tópico não tinha subido, desculpe-me.

Não quero substituir o que, que implementar mais a possibiliidade de ao clicar "ESC" o programa encerre.

de acordo com sua orientação fiz assim:

switch (op)
    {
           case 'S': printf (" Voce escolheu Somar, o resultado e: %lf\n",soma (a,b));break;
           case 'U': printf (" Voce escolheu Subtrair, o resultado e: %lf\n",sub(a,b));break;
           case 'P': printf (" Voce escolheu Multiplicar, o resultado e: %lf\n",produto(a,b));break;
           case 'D': printf (" Voce escolheu Dividir, o resultado e: %lf\n",divi(a,b));break;
           case 'Q': system("exit");break;
           case '27': system("exit");break;
           default: printf ("Opcao Invalida\n");
    }
mas, não funcionou ele me respondeu com se eu tivesse escolhido uma opção inválida, o que preciso é que ao clicar "ESC" o programa encerre. Muito obrigado e mais uma vezx desculpe-me pelo "UP" ============================================================
cara, tenha pacencia, se você postou a 4 horas atras, é bem provavel q ninguém vai ter respondido, as pessoas não ficam entrando no forum a cada 5 minutos. ainda mais de fim de semana, espere sempre uns dois dias pra ver se ninguém vai responder. agora, quanto ao esc, você ta falando naquele getch(), ta querendo substituir o Q?? se for, o codigo do esc é 27. faca assim:
case 27: system("exit");break;

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

  • 0
o 27 não é pra ta entre aspa, olha o codigo la em cima como eu fiz.

case 27: system("exit");break;
27 é o codigo ascii do esc, assim como você podia testar o Q com o codigo ascii dele em vez de com o caracter direto.
funcinou muito obrigado pela a juda... tenha um bom domingo ficou assim:
#include <stdio.h>
#include <stdlib.h>
//Funcao soma
double soma (double a, double b)
{
       double soma;
       soma=a+b;
       return (soma);
}

//Funcao multiplicacao
double produto (double a, double b)
{
       double produto;
       produto=a*b;
       return (produto);
}

//Funcao subtracao
double sub (double a, double b)
{
       double sub;
       sub=a-b;
       return (sub);
}

//Funcao divisao
double divi (double a, double b)
{
       double divi;
       divi=a/b;
       return (divi);
}


int main(int argc, char *argv[])
{
    double a,b;
    char op;
    printf ("Digite o Primeiro Numero: ");
    scanf ("%lf", &a);
    printf ("Digite o Segundo Numero: ");
    scanf ("%lf", &b);
    printf ("Precione 'ESC' para Sair ou Escolha uma Opcao: \n");
    printf ("Somar       (S)\n"
            "Subtrair    (U)\n"
            "Multiplicar (P)\n"
            "Dividir     (D)\n"
            "Sair        (Q)\n");
    
    printf ("Opcao: \n");
    scanf ("%c", &op);
    op = getch();
    switch (op)
    {
           case 'S': printf (" Voce escolheu Somar, o resultado e: %lf\n",soma (a,b));break;
           case 'U': printf (" Voce escolheu Subtrair, o resultado e: %lf\n",sub(a,b));break;
           case 'P': printf (" Voce escolheu Multiplicar, o resultado e: %lf\n",produto(a,b));break;
           case 'D': printf (" Voce escolheu Dividir, o resultado e: %lf\n",divi(a,b));break;
           case 'Q': system("exit");break;
           case 27: system("exit");break;
           default: printf ("Opcao Invalida\n");
     }
    
  
    system("\n PAUSE");    
    return 0;
}

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,2k
    • Posts
      652k
×
×
  • Criar Novo...