¿Cómo comparo un ‘int’ o ‘double’ con un ‘char’ utilizando el código ASCII en C++? ¿Es posible?
Estoy escribiendo una calculadora matemática simple que toma dos entradas (una para el número y otra para la operación, como +, -, *, /) con una función “Deshacer”.
Inicialicé lo siguiente:
// ‘valor’ es el resultado final y ‘usuario’ es la entrada del usuario
double valor = 0;
double usuario;
char operacion;
// Historial de valores anteriores
list<double> historial;
El código principal se ve así:
// Mostrar el valor inicial (0)
cout << "=>" << valor << endl;
while(true)
{
cin >> usuario;
cin >> operacion;
// Suma
if(operacion == '+')
{
historial.push_front(valor);
valor += usuario;
cout << "=>" << valor << endl;
}
// Resta
if(operacion == '-')
{
historial.push_front(valor);
valor -= usuario;
cout << "=>" << valor << endl;
}
// Multiplicación
if(operacion == '*')
{
historial.push_front(valor);
valor *= usuario;
cout << "=>" << valor << endl;
}
// División
if(operacion == '/')
{
historial.push_front(valor);
valor /= usuario;
cout << "=>" << valor << endl;
}
if(operacion == 'u' || operacion == 'U')
{
valor = historial.front();
cout << "=>" << valor << endl;
}
}
El problema aquí es que estoy pidiendo dos entradas y estoy pidiendo primero el número (que es de tipo double) en lugar de la operación (tipo char). Así que si el usuario ingresa ‘u’ como primera entrada, comenzará a comportarse de forma extraña.
¿Hay alguna forma de comparar el valor con una letra (en este caso, ‘u’ y ‘U’) utilizando códigos ASCII? ¿Y cómo lo haría si es posible?
Intenté declarar otro char deshacer = 'u'
y luego compararlo con if(usuario == deshacer)
, pero no funciona.
davy.ai
Sí, es posible comparar
value
con una letra (en este caso ‘u’ y ‘U’) utilizando los códigos ASCII. En ASCII, ‘u’ tiene un valor de 117 y ‘U’ tiene un valor de 85.Para comparar
user
con ‘u’ o ‘U’ utilizando los códigos ASCII, puedes convertiruser
a un entero utilizando la palabra clavestatic_cast
y compararlo con los valores enteros de ‘u’ y ‘U’. Aquí está el código modificado:Esto debería funcionar para comparar
user
con ‘u’ o ‘U’ utilizando los códigos ASCII.