Practicando un programmilla en c++ no me toma los case, y lo revise y lo compare
con el original y no le veo el error
Código:
//Simulacion de una calculadora
//Preprosesador
#include <iostream>
#include <limits>
using namespace std;
//Declaracion de funciones
int menu(void);
double leerDato();
//Funcion principal
int main()
{
double dato1 = 0, dato2 = 0, resultado = 0;
int operacion = 0;
while(true)
{
operacion = menu();
if(operacion != 5)
{
//leer datos
cout << "Ingrese dato1: "; cin >> dato1;
cout << endl <<"Ingrese dato2: "; cin >> dato2;
//realizar la operacion
switch(operacion)
case 1:
resultado = dato1 + dato2;
break;
case 2:
resultado = dato1 - dato2;
break;
case 3:
resultado = dato1 * dato2;
break;
case 4:
if(dato2 == 0)
{
cout << "El divisor no puede ser 0" << endl;
}
else
{
resultado = dato1 / dato2;
break;
}
}
}
}
int menu()
{
int op;
cout << "Sumar - |" << endl;
cout << "Restar - 2" << endl;
cout << "Multiplicar - 3" << endl;
cout << "Dividir - 4" << endl;
cout << "Salir - 5" << endl;
cout << "Seleccione la operacion deseada: ";
op = static_cast<int>(leerDato());
while(op < 1 || op > 5)
{
return op;
}
}
double leerdato()
{
double dato = 0.0;
cin >> dato;
while(cin.fail()) // si el dato es incorrecto limpiar el buffer y volverlo a leer
{
cout << '/a';
cin.clear();
cin.ignore(numeric_limits<int>::max(), '/n');
return dato;
}
}