elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema al usar la función fscanf para leer datos en un vector.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema al usar la función fscanf para leer datos en un vector.  (Leído 4,841 veces)
dvc

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Problema al usar la función fscanf para leer datos en un vector.
« 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
{
printf("error en fichero %s \n","magnetizaciones.txt");
exit (1);
}
for (i=0;i<n;i++)
{
fscanf(magnet,"%f",&magnetizaciones[i]);
printf("%f\n",magnetizaciones[i]);
}

(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!


« Última modificación: 15 Abril 2012, 17:15 pm por dvc » En línea

durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: Problema al usar la función fscanf para leer datos en un vector.
« Respuesta #1 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


En línea

Ahorrate una pregunta, lee el man
dvc

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Problema al usar la función fscanf para leer datos en un vector.
« Respuesta #2 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í?
En línea

durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: Problema al usar la función fscanf para leer datos en un vector.
« Respuesta #3 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
En línea

Ahorrate una pregunta, lee el man
dvc

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Problema al usar la función fscanf para leer datos en un vector.
« Respuesta #4 en: 15 Abril 2012, 22:16 pm »

Entendido.
Gracias por ayudarme!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
AYUDA PARA LEER DATOS DE UN TXT CON AUTOIT.......
Scripting
markus_bitman 5 11,075 Último mensaje 31 Marzo 2010, 07:49 am
por leogtz
Como puedo usar un .eps vector en Ps CS4 (photosho cs4)
Diseño Gráfico
ambar_graph 8 8,071 Último mensaje 6 Mayo 2010, 02:11 am
por [[ Criistian ]]
[C] Problemas para leer datos
Programación C/C++
cbug 8 3,914 Último mensaje 16 Junio 2010, 19:03 pm
por cbug
alguien que sepa leer vocales y consonantes de vector
.NET (C#, VB.NET, ASP)
XpandyX 6 8,195 Último mensaje 17 Octubre 2010, 19:09 pm
por XpandyX
Devolver un vector en una funcion
Programación C/C++
d00ze13 5 24,763 Último mensaje 12 Enero 2011, 09:41 am
por leogtz
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines