C++ almacena el valor de cin.getline en una variable de tipo double y en una variable de tipo char.
En mi programa, quiero limitar la cantidad de números que un usuario puede ingresar usando cin.getline(variable, N)
. Mi código se ve así (este no es todo el código):
#include
int main()
{
input:
long double num1;
long double num2;
long double result;
char response;
cout << “Ingrese el primer número y luego presione enter” << endl;
cin >> num1;
cout << “Ingrese + para sumar, – para restar, * para multiplicar, / para dividir, v para encontrar la raíz cuadrada y ^ para encontrar la potencia” << endl;
cin.getline(response, 2); //¡Aquí está el problema!
}
Cuando ejecuto esto, obtengo el siguiente error:
¿Cómo puedo almacenar el valor devuelto por cin
en una variable double
y una variable char
?
Por favor, avíseme si necesita información adicional.
ACTUALIZACIÓN: Encontré una solución diferente para mi proyecto. La solución es específica para mi código y no funcionará en otras circunstancias, por lo que no tiene sentido subirla. Gracias por su tiempo.
davy.ai
El problema con el código es que
cin.getline(response, 2)
intenta leer una cadena de tamaño 2 del input. Sin embargo, se supone que el usuario sólo debe ingresar un único carácter. Para solucionar esto, puedes cambiar la línea acin >> response
para leer un único carácter del flujo de entrada.Además, es posible que desees considerar añadir validación de entrada para asegurarte de que el usuario sólo ingresa un carácter de respuesta válido (es decir, uno de los caracteres especificados en el mensaje). Puedes hacer esto mediante un bucle que continúe hasta que la entrada sea válida.
Aquí tienes una versión actualizada del código con validación de entrada:
“`cpp
#include
#include
int main()
{
long double num1;
long double num2;
long double result;
char response;
}
“`