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

Problema com ciclo infinito


juninhodagavioes

Pergunta

To com problema aqui, como eu comecei a estudar c++ ontem, fiz só uma simples calculadora, vejam o codigo:

#include<iostream>
using namespace std;
int soma(int x, int y){
    return x+y;
}
int subtr(int x, int y){
    return x-y;
}
int multipl(int x, int y){
    return x*y;
}
int divis(int x, int y){
    return x/y;
}
int main(){
    int x,y,a;
    bool done=false;
    while (done==false){
          cout<<"\n\n\n\nVoce deseja: "<<endl<<"\n1-Somar\n2-Subtrair\n3-Multiplicar\n4-Dividir"<<endl<<"__________________"<<endl;
          cout<<"\n";
          cin >>a;
          cout<<"__________________"<<endl;
          switch(a){
                    case 1:
                         cout<<"Digite dois numeros para somar:"<<endl;
                         cout<<"\n";
                         cin >>x;
                         cout<<"+"<<endl;
                         cin>>y;
                         cout<<"\nO resultado e "<<soma(x,y)<<"."<<endl;
                         cout<<"__________________";                                              
                         break;
                    case 2:
                         cout<<"Digite dois numeros para subtrair:"<<endl;
                         cout<<"\n";
                         cin >>x;
                         cout<<" -"<<endl;
                         cin>>y;
                         cout<<"\nO resultado e "<<subtr(x,y)<<"."<<endl;
                         cout<<"__________________";
                         break;
                     case 3:
                         cout<<"Digite dois numeros para multiplicar:"<<endl;
                         cout<<"\n";
                         cin >>x;
                         cout<<"x"<<endl;
                         cin>>y;
                         cout<<"\nO resultado e "<<multipl(x,y)<<"."<<endl;
                         cout<<"__________________";
                         break;
                     case 4:
                         cout<<"Digite dois numeros para dividir:"<<endl;
                         cout<<"\n";
                         cin >>x;
                         cout<<"/"<<endl;
                         cin>>y;
                         cout<<"\nO resultado e "<<divis(x,y)<<"."<<endl;
                         cout<<"__________________";
                         break;
                     default:
                             cout<<"\n";
                             cout<<"Numero Invalido"<<endl;
                             cout<<"__________________";                    
                    }
                    }
cin.get();
cin.get();
return 0;
}

O problema é que se eu digitar uma letra ao invez de um numero, acontece o tal do ciclo infinito, e não sei como resolver, então me ajudem da forma mais facil, porque sou novato nessa linguagem, t+!

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Isto é uma calculadora^^ Vai somar numeros!! Pra que digitar letras?

Mais mesmo assim se a pessoa digitar letra após a leitura deles você faz um teste pra ver se é numero ou letra se for numero ele continua executando o programa!! Se for letra ele manda digitar novamente.

Eu nunca usei C++ então só dando uma dica!! Abraço!

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...