Lo que estoy buscando es una manera segura de ingresar un entero por teclado y guardarlo en una variable int.-
El programa que dejo a continuación se acerca bastante pero tengo un problema, si ingreso por ejemplo 99999 estoy sobrepasando el máximo permitido para el tipo int.-
Estoy leyendo sobre limits.h y errno pero no logro implementarlo.-
Otra cosita, ¿si verifico con un bucle cada carácter ingresado y resultara ser todos números,y no sobrepasara el máximo permitido para el tipo int?, ¿sera muy complicado?
Código:
Gracias por el tiempo.-#include <stdio.h> #include <stdlib.h> #define IMPRIME printf ("\n\tIngrese un numero (maximo a 5 digitos)...: "); int verifica(void) { char buf[30]; char *p; int numero,ver=0; while(ver !=1) { if (fgets(buf, 6, stdin) != NULL) { numero = strtol(buf, &p, 10); } if (buf[0] != '\n' && (*p == '\n' || *p == '\0')) { ver=1; } else { printf("\n\tNo es numero (apriete una tecla para continuar)...");system("PAUSE>null"); system("cls"); IMPRIME; } } return numero; } int main(void) { int numVer; IMPRIME(numVer=verifica()); printf("\n\tIngreso..:%d - Apriete una tecla para cerrar la ventana...",numVer);system("PAUSE>null"); return 0; }
Saludos.
Daniel