Ir ao conteúdo
  • Cadastre-se

Como impedir que o programa fique bugado ao digitar caracter especial?ex:"^[[C"


Ian Varejao

Posts recomendados

Este é o código:

#include <stdio.h>#define CONST 30double pot(double a, int {    double c=1;    for(b;b>0;b--)    {	c=c*a;    }    return c;}double raiz(double a,int k){    double x=1;    int n;    for(n=CONST;n>0;n--)    {	x=(1.0/k)*((k-1)*x+(a/pot(x,(k-1))));    }    return x;}main(){    int b,resp;    double a,c;    printf("1-Potenciaçao\n2-Radiciaçao\n3-sair\n>");    scanf(" %d", &resp);    while(resp!=3)    {        if(resp==1)        {            printf("potencia= a^b\ndigite a: ");            scanf(" %lf", &a);            printf("digite b: ");            scanf(" %d", &;            printf("\nCalculando...\n\n");            c=pot(a,;            printf(" %lf^%d=%lf\n", a, b, c);        }        if(resp==2)        {            printf("radiciaçao= b-esima raiz de a\ndigite a: ");            scanf(" %lf", &a);            printf("digite b: ");            scanf(" %d", &;            printf("\nCalculando...\n\n");            c=raiz(a,;            printf("A %d raiz de %lf é=%lf\n", b, a, c);        }        if(resp!=1 && resp!=2)        {            printf("Digite apenas 1 ou 2 ou 3\n>");           }        printf("Fazer outra operaçao?(1-potenciaçao,2-radiciaçao,3-sair)\n>");        scanf(" %d", &resp);     }        }

Se eu digito um caracter especial quando vem o prompt pedindo para escolher a operaçao a ser realizada, o programa entra em loop infinito, repetindo os valores da ultima execucao.

Só quero saber como alterar meus inputs/outputs para que isso jamais aconteça.

O professor nao responde minhas mensagens, então to postando aqui.

Link para o comentário
Compartilhar em outros sites

Experimente utilizar algum método para tratamento de exceção: http://www.vivaolinux.com.br/artigo/Tratamento-de-excecoes-na-linguagem-C

Acho que e isso que estava procurando.No python havia o try, mas em C nao sabia como fazer.

Quando tiver tempo tentarei corrigir o problema, dai eu posto o codigo correto aqui, e digo se foi resolvido ou nao.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...