Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: vidalpet en 21 Agosto 2015, 02:13 am



Título: [Duda]Ayuda Necesito aprender a validar soy Nuevo en progracion [c]
Publicado por: vidalpet en 21 Agosto 2015, 02:13 am
Buenas noches saludos ten go problema para validcar datos de entradas tengo que hacer un cajero automatico y necesito validar entrada de datos es decir si pido que marque numeros , que el usuario marque numero pues , que si  pido caracter pues coloque caracter que si ingresa algo diferente que mande un mensaje voy a colocar este codigo para que me expliquen con este simple codigo no use switch case , lo hice asi pero AYUDEME tengo ansias de aprender ,

Código
  1. #include <stdio.h>
  2.  
  3. //Ejercicio 3 del tema "Variables y Operadores Básicos":
  4. //Programa que pida la temperatura en grados Celsius y la convierta a grados
  5. //Fahrenheit (y viceversa) mostrando en pantalla un mensaje del tipo
  6. //“xxx.xx grados Celsius son yyy.yy grados Fahrenheit”
  7.  
  8.  
  9. int main(){
  10.  
  11. float c , f;
  12. int opcion;
  13.  
  14. //pido datos
  15. printf("para convertir celsius a fahrenheit presione 1\n");
  16. printf("para convertir fahrentir a celsius presione 2\n");
  17.  
  18. scanf("%d",&opcion);
  19.  
  20. if (opcion==1){
  21.  
  22. printf("ingrese los grados celsius:");
  23. scanf("%f",&c);
  24.  
  25. f=9.0/5.0*c+32.0;
  26. //muestro resultados
  27. printf("%.2f grados celsius son %.2f grados fahrenheit \n\n",c,f);
  28.  
  29. }
  30.  
  31.  
  32. else   {printf("ingrese los grados fahreint :");
  33. scanf("%f",&f);
  34. //implemento formula
  35.  
  36. c=(f-32.0)*5.0/9.0;
  37.  
  38.  
  39. printf("%.2f grados fahreint son %.2f grados celsius \n\n",f,c);
  40. }
  41.  
  42.  
  43.  
  44.  
  45. return 0;
  46. }

ayudeme a validar las entradas de este codigo para guiarme de los demas codigo que haga si me ayudan agradeceria que DOCUMENTARAS el codigo para saber soy nuevoo


Mod: Los códigos deben ir en etiquetas GeSHi


Título: Re: [Duda]Ayuda Necesito aprender a validar soy Nuevo en progracion [c]
Publicado por: engel lex en 21 Agosto 2015, 03:43 am
scanf no es util para validar datos, ya que el simplemente trata de capturar lo que hy, sin embargo, un pequeño hack para validad sería

Código
  1. char term;//esto se uesará para validción
  2. float num;//del tipo ue quieras, aquí irá el numero
  3. if(scanf("%f%c", &num, &term) != 2 || term != '\n'){
  4.  printf("invalido\n"); //si es invalido cae aquí
  5. }else{
  6.  printf("numero valido: %f\n", num); //si es valido muestra el numero
  7. }
  8.