Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Transformar a funcion

Estas en el tema de Transformar a funcion en el foro de C/C++ en Foros del Web. Como puedo transformar esta validacion a función para porder validar varios datos sin que escriba nuevamente el codigo completo. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código C++: Ver original ...
  #1 (permalink)  
Antiguo 03/09/2013, 10:52
Avatar de bgab7  
Fecha de Ingreso: agosto-2013
Mensajes: 11
Antigüedad: 10 años, 8 meses
Puntos: 0
Pregunta Transformar a funcion

Como puedo transformar esta validacion a función para porder validar varios datos sin que escriba nuevamente el codigo completo.
Código C++:
Ver original
  1. do
  2.     {
  3.         continuar = false;
  4.         cin.clear();//La instrucción cin.clear(); borra y establece el flujo a goodbit                         
  5.         if(cont > 0) cin.ignore(1024, '\n');/*La instrucción cin.ignore(1024, '\n') Ignorar hasta
  6.         1024 caractéres introducidos hasta encontrar un ENTER o viceversa, lo que primero ocurra.*/
  7.         cout << "Introduce el radio: ";
  8.         cin >> rad;
  9.         cont++;
  10.         if(cin.fail() && cin.rdstate())/*La instrucción cin.fail() retorna true si una operación
  11.         de flujo a fallado y es posiblie realizar una recuperación de esos errores.La instrucción
  12.         cin.rdstate() retorna true si el estado de flujo es correcto.*/
  13.         {
  14.             cout << "NO ES UN NUMERO" << endl;
  15.             continuar = true;
  16.         }
  17.     } while (continuar);
  #2 (permalink)  
Antiguo 03/09/2013, 12:20
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 11 años, 9 meses
Puntos: 22
Respuesta: Transformar a funcion

Hola.

Podrías hacer:
Código C++:
Ver original
  1. float getfloat(const string mensaje)
  2. {
  3.   bool continuar;
  4.   float numero;
  5.   int cont = 0;
  6.  
  7.   do {
  8.     continuar = false;
  9.     cin.clear();
  10.     if(cont > 0) cin.ignore(1024, '\n');
  11.     cout << mensaje;
  12.     cin >> numero;
  13.     cont++;
  14.     if(cin.fail() && cin.rdstate()) {
  15.       cout << "NO ES UN NUMERO" << endl;
  16.       continuar = true;
  17.     }
  18.   } while (continuar);
  19.  
  20.   return numero;
  21. }

Ejemplo de uso:
Código C++:
Ver original
  1. ...
  2. {
  3.   float num = getfloat("Ingrese el radio: ");
  4. ...

Saludos.

Etiquetas: c++, funciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:16.