Erro no codigo em c++ alguem pode me ajudar ? [RESOLVIDO]

1. Erro no codigo em c++ alguem pode me ajudar ? [RESOLVIDO]

Rafael santana de jesus
chidori19

(usa Ubuntu)

Enviado em 07/05/2015 - 23:07h



eu compilo normalmente o programa

quando entro com um operador invalido ele me da a mensagem normalmente como tem que ser feito. exceto se o carácter for 'e' ou 'ç'
seu digitar por exemplo 12ç e apertar enter ele entra em loop,mas se eu digitar 12r ou qualquer outro carácter que não seja 'e' ou 'ç' ele da a mensagem de operador invalido.
e com if no lugar do while o erro ainda continua só que sem o loop obvio.
o codigo é esse

#include <iostream>
using namespace std;
int main( ){
float valor1, valor2,resultado ;
char operador;
cout<<"\n\n+ - x /";
cout<<"\n\nexemplo 1+1 ";
cout<<"\n\nDigite a operação: ";
cin >> valor1>>operador>>valor2;
while(operador!= '+'&& operador != '-' && operador != 'x'&& operador != '/'){
cout << "\nOperador invalido";
cout <<"\nTente novamente\n";
cout<<"\n\n+ - x /\n";
cout<<"Digite a Operação ";
cin>>valor1>>operador>>valor2;
}
if( operador == '+' ){
resultado = valor1 + valor2;
}
else if( operador == '-'){
resultado = valor1 - valor2;
}
else if( operador == 'x'){
resultado= valor1 * valor2;
}
else if( operador == '/'){
resultado= valor1 / valor2;
}
cout <<"\no resultado da operação é: " <<resultado;
return 0;
}




  


2. Re: Erro no codigo em c++ alguem pode me ajudar ? [RESOLVIDO]

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 08/05/2015 - 08:13h

A variavel "operador" não está recebendo nenhum "caractere"!

Segue código corrigido:


#include <iostream>
#include <cstdio>
using namespace std;
int main( ) {
float valor1, valor2,resultado ;
char operador;
cout<<"\n\n+ - x /";
cout<<"\n\nexemplo 1+1 ";
cout<<"\n\nDigite a operação: ";
cin >> valor1;
cin.get(operador);
cin >>valor2;

cout << "[Debug: deletar após teste]: A variavel operador possui : "<< operador<<endl;
while(operador!= '+' && operador != '-' && operador != 'x' && operador != '/') {
cout << "\nOperador invalido";
cout <<"\nTente novamente\n";
cout<<"\n\n+ - x /\n";
cout<<"Digite a Operação ";
cin>>valor1>>operador>>valor2;
}
if( operador == '+' ) {
resultado = valor1 + valor2;
} else if( operador == '-') {
resultado = valor1 - valor2;
} else if( operador == 'x') {
resultado= valor1 * valor2;
} else if( operador == '/') {
resultado= valor1 / valor2;
}
cout <<"\no resultado da operação é: " <<resultado;
return 0;
}



Espero ter ajudado

[]'s

T+


NOTA: Coloque o código entre as tags [code] e [/code], ficando algo assim:

[code]"aqui vai o código"[/code]


3. Re: Erro no codigo em c++ alguem pode me ajudar ?

Rafael santana de jesus
chidori19

(usa Ubuntu)

Enviado em 08/05/2015 - 12:02h

Muito obrigado!! mas o loop continua 12e enter loop infinito não sei se é um erro do compilado utilizo o codeblocks


4. Re: Erro no codigo em c++ alguem pode me ajudar ? [RESOLVIDO]

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 08/05/2015 - 23:26h

Sei não...

Marque o tópico como resolvido e clique em melhor resposta!

Espero ter ajudado

[]'s

T+


5. Dica...

Gabriel Bassani Ribieiro
gbassanir

(usa Debian)

Enviado em 09/05/2015 - 00:33h

Boa noite,

Posso te dar umas dicas,

Interessante usar "while !();" isso mesmo '!' do lado de fora, depois entenda o funcionamento do operador fora e dentro, isso --> while (a != 0); é diferente disso --> while !(a = 0);

Interessante usar o "cin.ignore ();" essa é de ouro, confesso que deve até resolver seu problema

Não sabe o que é?

--> http://www.cplusplus.com/reference/istream/istream/ignore/
--> http://www.tiexpert.net/programacao/c/cin.php

Qualquer coisa, estou a disposição.

Att,




  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts