ayuda sobre operadores compuestos
Publicado por juan (1 intervención) el 24/08/2001 06:39:08
Necesito desarrollar un programa en el cual los operandos los determine el usuario y deben de ser de diferente tipo
Valora esta pregunta


0
#include <iostream>
#include <string>
#include <typeinfo>
int main() {
std::string input1, input2;
std::cout << "Ingrese el primer operando: ";
std::cin >> input1;
std::cout << "Ingrese el segundo operando: ";
std::cin >> input2;
// Determinar el tipo de los operandos
bool isInt1 = input1.find_first_not_of("0123456789") == std::string::npos;
bool isFloat1 = input1.find_first_not_of("0123456789.") == std::string::npos && input1.find('.') != std::string::npos;
bool isInt2 = input2.find_first_not_of("0123456789") == std::string::npos;
bool isFloat2 = input2.find_first_not_of("0123456789.") == std::string::npos && input2.find('.') != std::string::npos;
// Convertir los operandos a los tipos correctos
if (isInt1 && isInt2) {
int op1 = std::stoi(input1);
int op2 = std::stoi(input2);
std::cout << "Resultado de la suma: " << (op1 + op2) << std::endl;
} else if (isFloat1 && isFloat2) {
float op1 = std::stof(input1);
float op2 = std::stof(input2);
std::cout << "Resultado de la suma: " << (op1 + op2) << std::endl;
} else if (isInt1 && isFloat2) {
int op1 = std::stoi(input1);
float op2 = std::stof(input2);
std::cout << "Resultado de la suma: " << (op1 + op2) << std::endl;
} else if (isFloat1 && isInt2) {
float op1 = std::stof(input1);
int op2 = std::stoi(input2);
std::cout << "Resultado de la suma: " << (op1 + op2) << std::endl;
} else {
std::cout << "Los operandos no son de tipos compatibles." << std::endl;
}
return 0;
}