Cuando se trabaja con la entrada del usuario, es esencial asegurarse de que los datos ingresados se alineen con el formato esperado. En los casos en que se requieran valores enteros, puede encontrar escenarios en los que los usuarios ingresan inadvertidamente caracteres no numéricos.
Este artículo proporciona una solución para abordar este problema verificando si la entrada del flujo de entrada estándar es un entero o no. Aquí hay un desglose detallado de la implementación:
int x; cin >> x; if (cin.fail()) { // Not an int. }
la función cin.fail () verifica el estado de la secuencia de entrada. Si la operación de entrada no fue exitosa (por ejemplo, debido a una entrada no válida), la función devuelve verdaderas y establece el indicador FailBit. De lo contrario, devuelve falso.
Este enfoque le permite determinar si la entrada es un entero o no. Si no es así, puede tomar las medidas apropiadas, como pedirle al usuario que vuelva a ingresar a un entero válido.
para escenarios donde la secuencia de entrada contiene caracteres no INT seguidos de enteros, puede usar el siguiente bucle:
int x; while (cin.fail()) { cin.clear(); cin.ignore(256, '\n'); cin >> x; }
la función Cin.Clear () borra el indicador FailBit, mientras que Cin.ignore (256, '\ n') omita los caracteres de entrada restantes hasta el primer carácter de Newline o 256 caracteres, lo que viene primero.
alternativamente, si el usuario puede ingresar una cadena no intencionadora, puede leer la entrada como una cadena, verificar solo los números, y contiene que contenga, y contiene, y contiene y contiene que contiene un intento. Sin embargo, este enfoque puede no ser adecuado para los casos en que se esperan números de punto flotante.
en resumen, el fragmento de código proporcionado le permite verificar si la entrada del flujo de entrada estándar es un entero. Si no, puede manejar la situación en consecuencia, asegurando que solo se acepten valores enteros válidos en su programa.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3