Hola,
Les escribo porque tengo una duda referente a una conversion de char a double, para lo que me han indicado usar esta función.
El problema es que tengo poca información sobre que devuelve esta función, y es probable que no sea lo mas adecuado para lo que busco.
Necesito escribir un codigo que me convierta un char a double (si el char es un double valido) y escribí esto:
int z;
char cadena[100];
if((z=atof(cadena)) == 0)
printf("n%s NO ES UN DOUBLE VALIDOn", cadena);
else printf("n %s = %lfn", cadena,z);
Si la cadena es "33.5" el programa funciona correctamente, siendo z = 33.500000
Si la cadena es "AaAaA" el programa funciona correctamente, mostrando el mensaje de error.
Si la cadena es "33A" o "33,5", en vez de error el programa muestra z = 33.00000, lo cual no me sirve, ya que "33A" no es un double válido y deberia darlo como error.
Como les dije, no se si en estos ultimos casos atof() devuelve algun valor en particular que pueda recoger para saber que la conversion no ha sido correcta, o si me recomiendan usar alguna alternativa.
Un saludo y gracias.