• Domingo 19 de Mayo de 2024, 18:25

Autor Tema:  VALIDAR double  (Leído 2379 veces)

-.-JP

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
VALIDAR double
« en: Miércoles 13 de Octubre de 2010, 10:44 »
0
buenas =)
podrai alguien ayduarme, tengo un programa que realiza calculos, y ocupo que el usuario solo digite numeros, letras se me cae el programa -.-. Como valido que solo digite numeros de tipo double??? les dejo parte del codigo:

 :hitcomp:  case '1':
        {
            system("cls");
            system("color f5");
            double xp;
            double yp;
            cout<<endl<<endl;
            cout<<"                                       PUNTO"<<endl;
            cout<<"                                       _____"<<endl;
            cout<<endl<<endl<<endl;
            cout<<"Digite (x,y) para crear Punto: "<<endl;
            cout<<endl;
            cout<<"X: ";
            cin>>xp;
            cout<<endl;
            cout<<"Y: ";
            cin>>yp;
            menuPunto(xp,yp);
            break;

        }

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: VALIDAR double
« Respuesta #1 en: Miércoles 13 de Octubre de 2010, 19:44 »
0
Intenta usando scanf_s, "%lf" indica que esperamos un double, el fflshd(stdin) es para limpiar la entrada de datos si es que el usuario ingreso basura en lugar de lo esperado.

Código: C++
  1.  
  2. #include <stdio.h>
  3. ....
  4.         double xp = 0.0;
  5.         double yp = 0.0;
  6.         scanf_s("%lf", &xp);
  7.         fflush(stdin);
  8.         printf("%fn", xp);
  9.         scanf_s("%lf", &yp);
  10.         fflush(stdin);
  11.         printf("%fn", yp);
  12.  
  13.  

-.-JP

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: VALIDAR double
« Respuesta #2 en: Miércoles 13 de Octubre de 2010, 22:44 »
0
Mas que todo ocupo que si me ingresan una letra que no se caiga el programa =S e buscado y tratado de varias maneras pero sigue sin funcionar

Radger

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: VALIDAR double
« Respuesta #3 en: Jueves 14 de Octubre de 2010, 14:10 »
0
Puedes guardar la entrada del usuario en un char* o std::string de esta manera el programa no se cerrara y solo tendrias que comprobar que la cadena tiene los datos que necesitas.