Título: Problema al usar la función fscanf para leer datos en un vector. Publicado por: dvc en 15 Abril 2012, 17:13 pm Hola, soy nuevo en esto de la programación y tengo un pequeño problema, a ver si me podéis ayudar.
Estoy haciendo un programa donde, en una parte, estoy tratando de leer los datos de un fichero de texto y guardarlos en un vector, pero no consigo que me lea los datos "bien". Esto es el segmento de código donde creo que está el error. Código: if ((magnet=fopen("magnetizaciones.txt","rt"))==NULL) //abrimos el fichero magnetizaciones.txt (Las variables int n, int i,FILE *magnet, double magnetizaciones[1000] están declaradas anteriormente. La variable n justo antes del segmento de código que he puesto vale 100). El fichero magnetizaciones tiene guardados 100 números decimales en una columna: 0.011800 -0.003600 -0.002200 0.002200 ... En lugar de imprimirme por pantalla los números del fichero, me saca números muy grandes algo diferentes entre sí. Algo así: -957650000000000 -957645000000000 -957634500000000 ... ¿Alguien sabe donde puede estar el error? Creo que debo estar usando mal la función scanf pero no sé por qué. Muchas gracias por adelantado! Título: Re: Problema al usar la función fscanf para leer datos en un vector. Publicado por: durasno en 15 Abril 2012, 20:50 pm Hola! asi como esta el codigo no veo ningun error. En ves de usar %f proba con %lf ya que es un double sino subi todo el codigo
Saludos Título: Re: Problema al usar la función fscanf para leer datos en un vector. Publicado por: dvc en 15 Abril 2012, 21:43 pm Muchísimas gracias!
He puesto %lf y ya me lee bien los datos. Si no he entendido mal, para leer datos guardados como doubles tienes que poner lf y para leer datos guardados como floats puedes poner tanto %lf como %f. ¿Es así? Título: Re: Problema al usar la función fscanf para leer datos en un vector. Publicado por: durasno en 15 Abril 2012, 22:12 pm mmm no. si un numero fue guardado, en el archivo, como float o double no tiene nada que ver. EL tema es con que precision queres recuperar esos datos; como vos definiste a tu arreglo magnetizaciones de tipo double lo correcto es usar %lf, ahora si el arreglo hubiese sido float usarias %f
Saludos Título: Re: Problema al usar la función fscanf para leer datos en un vector. Publicado por: dvc en 15 Abril 2012, 22:16 pm Entendido.
Gracias por ayudarme! |