Ver Mensaje Individual
  #17 (permalink)  
Antiguo 20/11/2014, 09:05
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 3 meses
Puntos: 10
Respuesta: do while false

No sé si esto se aleja de los que buscáis, pero para validar un número yo uso los streams.

Esto es una función que encontré una vez, que la manoseé para que admitiera la entrada de decimales con coma (vamos, que si se encuentra con una coma la transforma en punto)...pero la idea original no es mía
Código C++:
Ver original
  1. bool validar (std::string& entrada, float& valor)
  2. {
  3.     for (size_t i=0; i<entrada.length(); i++)
  4.         if (entrada[i]==',')
  5.         {
  6.             entrada[i]='.';
  7.         }
  8.     std::stringstream mystream(entrada);
  9.     if(mystream >> valor)
  10.     {
  11.         return true;
  12.     }
  13.     return false;
  14. }

Y la llamamos así:
Código C++:
Ver original
  1. std::string entradanumerica;
  2.         float Cantidad;        
  3.         std::cout<<"Introduce cantidad: "<<std::endl;
  4.         getline (std::cin,entradanumerica);
  5.         while (!validar(entradanumerica,Cantidad))
  6.         {
  7.             getline (std::cin,entradanumerica);
  8.         }

Última edición por dehm; 20/11/2014 a las 09:11