# include //printf , fgets , stdin , BUFSIZ
3 Declarar las variables necesarias para ingresar un entero añadiendo el siguiente código al principio de la función :
número int
;
n sin firmar ;
char buffer [ BUFSIZ ] ;
bool found_nondigit , válido ;
4
Preguntar al usuario que introduzca un número entero . Compruebe si su entrada válida y, si no , siguen solicitando entrada hasta que el usuario introduce solamente un entero con el código siguiente :
válido = false;
while { < br (válido !) >
printf ("Introduzca un número entero :") ;
if (! fgets (buffer, buffer de sizeof , stdin ) = NULL ) {
búfer
[ strlen ( buffer) -1 ] = ' \\ 0 ' ;
found_nondigit = false;
if ( strlen ( buffer) == 0 )
found_nondigit = true;
para (n = 0 , n < strlen ( buffer) ; n + + )
si
found_nondigit = true ( isdigit ( buffer [ n]) !) ;
if (! found_nondigit ) {
número
= atoi ( buffer) ;
printf ("% d \\ n " , número) ;
válido = true;
}
más
printf ( "Error: entrada no válida \\ n"); }
}
entrada como " 5to ", " x6 " y" 8.4 " se detectan como entrada válida. 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 entero , una vez que se ha validado .
5
Guarde el archivo C + + , compilar y ejecutar el programa para recolectar información del número entero del usuario.
< Br >