Programar es un proyecto de inserción laboral en tecnología para jóvenes de bajos recursos económicos, mediante una capacitación integral de alto valor agregado. Sumate a la comunidad, te esperamos!

Ver más
  • 3,785 Miembros
  • 635 Temas
  • 1,177 Seguidores
  • 0

[Duda] Ayuda con C

Que tal amigos!. llevo poco tiempo utilizando C. Quisiera saber si me podrían ayudar con una duda.

La duda es:

Como utilizar excepciones en C. esas con las que en java se llaman try{ } catch{ } en la entrada de datos.

--------------------------------------------------------------------

printf("precio del dolar:n");
scanf("%f", &precioDolar); //lee el precio del dolar
--------------------------------------------------------------------

estas lineas reciben datos flotantes, mas sin embargo no caracteres. Lo que pretendo es que al ingresar algún carácter no salte un error critico, si no que muestre un mensaje indicando la falta y permitir que el usuario pueda volver a introducir el dato numérico. Pero para ello necesito alguna excepción. Pero no se como funciona en C.
--------------------------------------------------------------------




Les estaré realmente agradecido que me pudieran ayudar, un Saludo!!!.
  • 0
  • 0Calificación
  • 0Seguidores
  • 106Visitas
  • 0Favoritos

3 comentarios

@Marian_maggots Hace más de 11 meses
Podrias preguntar con un if antes de eso que vos pusiste,para ver si alguien ingreso un caracter(el problema seria que la condicion quedaria enorme si tenes que preguntar por todas las letras del abecedario).
@GillespieBelmont Hace más de 11 meses
Bueno, las excepciones (es decir los bloques de código que van entre try y catch) NO existen en el lenguaje C. Lo que podés hacer es declarar una variable y con esa hacer una condición en un while.

Ejemplo: "Quiero que el usuario ingrese un numero entre 1 y 10"




#include "stdio.h"

int main(void){
int a=0;
int i;
while(a==0){
printf("Ingrese un numero:n"
scanf("%d",&i);
if(i>=0 && i<=10) a=1;
}
}



Si te fijás la condición del if que está dentro del while se cumplirá si el usuario ingresa un número
entre 0 y 10 y cuando esto ocurre se sale del while. Si la condición no se cumple seguirá la ejecución porque la condición del while se mantiene verdadera. Cualquier duda preguntá
@SaGgaSsa Hace más de 11 meses
yo hice eso cuando programaba en C, no me acuerdo ya, si use esta funcion strtof() o atof()
strtof devuelve zero sino se convirtio, osea si habia un caracter no numerico o alguna otra razon por ej: 112.253.5, etc
atof devuelve el numero hasta donde puede convertir, osea si meten 124.gsdd te devuelve 124.
estoy casi seguro de haber usado el strtof, y lo que habre hecho fue si devolvia cero comparaba con lo que habian ingresado, si era igual es 0, sino eran iguales ingreso un caracter invalido para un numero.
Tienes que ser miembro para responder en este tema