sábado, 9 de noviembre de 2013

Cómo hacer de entrada Sólo un entero en C + +

Forzar la entrada en un programa de C + sea un número entero es útil cuando usted está solicitando una persona para introducir un número, como su edad, y desea ignorar entrada no válida, como "$ 2", "18.5" o "no." No hay ninguna manera sencilla para restringir la entrada a un tipo específico, como las funciones de E / S normalmente procesan de entrada simplemente como un carácter o una cadena. Para forzar número entero de entrada, el lazo manualmente a través de la entrada y comprobar que cada personaje es un entero válido. 

INTEGER



Abra el C + + archivo en un editor como Microsoft Visual Studio Express.



Incluya las librerías necesarias para acceder a las funciones añadiendo el siguiente código al principio del archivo:



# Include ctype.h / / isdigit



# Include stdlib.h / / atoi



# Include string.h / / strlen



# Include stdio.h / / printf, fgets, stdin, BUFSIZ



Declarar las variables necesarias para ingresar un entero añadiendo el siguiente código en la parte superior de la función:



int numero;



n sin firmar;



carbón buffer [BUFSIZ];



bool found_nondigit, válido;



Pida al usuario que introduzca un número entero. Comprobar si es una entrada válida y, si no, siga solicitando entrada hasta que el usuario introduce solamente un entero añadiendo el siguiente código:



válido = false;



while (! válido) {



printf ("Introduzca un número entero:");



if (fgets (buffer, buffer de sizeof, stdin)! = NULL) {



buffer [strlen (buffer) -1] = '\ 0';



found_nondigit = false;



if (strlen (buffer) == 0)



found_nondigit = true;



para (n = 0; nstrlen (tampón); n + +)



if (! isdigit (buffer [n]))



found_nondigit = true;



if (! found_nondigit) {



numero = atoi (buffer);



printf ("% d \ n", número);



válido = true;



}



más



printf ("Error: Entrada no válida \ n");



}



}



De entrada, tales como "5to", "x6" y "8.4" se detectan como no válido de entrada. El "de" controles de bucle si introduce cada carácter es un número del 0 al 9. El "if (strlen (buffer) == 0)" verificaciones en línea si el usuario pulsa la tecla "Enter" sin ingresar ninguna información. La función "atoi" convierte la entrada a un número entero, una vez que se ha validado.



Guarde el archivo de C + +, compilar y ejecutar el programa para recolectar información del número entero del usuario.



 

No hay comentarios:

Publicar un comentario