[Duda]Ayuda Necesito aprender a validar soy Nuevo en progracion [c]

Iniciado por vidalpet, 21 Agosto 2015, 02:13 AM

0 Miembros y 1 Visitante están viendo este tema.

vidalpet

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 ,

#include <stdio.h>

//Ejercicio 3 del tema "Variables y Operadores Básicos":
//Programa que pida la temperatura en grados Celsius y la convierta a grados
//Fahrenheit (y viceversa) mostrando en pantalla un mensaje del tipo
//"xxx.xx grados Celsius son yyy.yy grados Fahrenheit"


int main(){

float c , f;
int opcion;

//pido datos
printf("para convertir celsius a fahrenheit presione 1\n");
printf("para convertir fahrentir a celsius presione 2\n");

scanf("%d",&opcion);

if (opcion==1){

printf("ingrese los grados celsius:");
scanf("%f",&c);

f=9.0/5.0*c+32.0;
//muestro resultados
printf("%.2f grados celsius son %.2f grados fahrenheit \n\n",c,f);

}


else   {printf("ingrese los grados fahreint :");
scanf("%f",&f);
//implemento formula

c=(f-32.0)*5.0/9.0;


printf("%.2f grados fahreint son %.2f grados celsius \n\n",f,c);
}




return 0;
}


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

engel lex

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


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


El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.