Hola a todos
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:
#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;
}
Gracias por el tiempo.-
Saludos.
Daniel