Ver Mensaje Individual
  #5 (permalink)  
Antiguo 27/04/2010, 05:45
jbourne
 
Fecha de Ingreso: abril-2010
Mensajes: 11
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ayuda para validacion de datos

Yo implementé una mínima validación para un programa chorra que hice de la siguiente forma (muy muy esquematizado):

// Declaras una cadena donde se almacenará el número
char numero[50];

// Utilizas un bucle que lea el supuesto número mientras no sea válido, por ej:

do
{
gets(numeroA);
fflush(stdin); // Vacía el buffer del teclado (evita algunos problemas de lectura)
} while (!esNumNatural(numero));

// Lo que está dentro del while es una función que recibe la cadena y devuelve true si es un número natural. Te pego la función:

Código C++:
Ver original
  1. bool esNumNatural (char *entrada)
  2. {
  3.     bool esCorrecto = true;
  4.  
  5.     if (strlen (entrada) != 0) // Comprueba que la cadena no esté vacía
  6.     {
  7.         for (unsigned int i = 0; i < strlen (entrada); i++) // Recorre la cadena, celda por celda
  8.         {
  9.             if(!isdigit (entrada[i])) // Si el contenido de la celda no es un digito, esCorrecto pasa a valer falso
  10.                 esCorrecto = false;
  11.         }
  12.     }
  13.     else
  14.         esCorrecto = false;
  15.  
  16.     if (atoi(entrada) == 0) // No se considera natural el número cero
  17.         esCorrecto = false;
  18.  
  19.     return esCorrecto;
  20. }

Creo que jugando con estas pautas (tus números son en coma flotante, así que tienes que controlar esto) puedes conseguir algo útil.

Hasta luego.