SoloCodigo
		Programación General => C/C++ => Visual C++ => Mensaje iniciado por: -.-JP en Miércoles 13 de Octubre de 2010, 10:44
		
			
			- 
				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;
 
 }
- 
				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.
 
 -   
- #include <stdio.h> 
- .... 
-         double xp = 0.0; 
-         double yp = 0.0; 
-         scanf_s("%lf", &xp); 
-         fflush(stdin); 
-         printf("%fn", xp); 
-         scanf_s("%lf", &yp); 
-         fflush(stdin); 
-         printf("%fn", yp); 
-   
-   
 
- 
				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
			
- 
				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.