Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: fafafa01 en 17 Mayo 2016, 06:34 am



Título: Leer un archivo de texto con fscanf y ponerlo en un arreglo de float.
Publicado por: fafafa01 en 17 Mayo 2016, 06:34 am
Buenas, hice un código que pretende leer de un archivo de texto con scanf las primeras 20 lineas y ponerlo en un arreglo, la cosa es que no funciona.

mi código:

Código:
#include <stdio.h>

void copiar(float arreglo[], int cantidad);

void main (void) {
float datalog[200];
int i=0;
copiar(datalog,20);
while (i<=20) {
printf(" %f \n",datalog[i]);
i++;
}
}

void copiar(float arreglo[],int cantidad) {
int i=0;
FILE *archivo;
archivo=fopen("datalog2","r");
if( archivo )
      printf( "existe (ABIERTO)\n" );
   else {
      printf( "Error (NO ABIERTO)\n" );
}
while (i<=cantidad){
fscanf(archivo," %f ",arreglo);
i++;
}
fclose(archivo);
}

¿hay algo mal en la sintaxis? (el archivo no aparece como .txt ni como .dat ni nada, asique le puse solo el nombre)

saludos.


Título: Re: Leer un archivo de texto con fscanf y ponerlo en un arreglo de float.
Publicado por: class_OpenGL en 17 Mayo 2016, 09:46 am
La cosa es que si copias lo del archivo siempre a la misma dirección de memoria, no hacemos nada.

Tendrías que cambiar
Código
  1. fscanf(archivo," %f ",arreglo);
por
Código
  1. fscanf(archivo," %f ",&arreglo[i]);


Título: Re: Leer un archivo de texto con fscanf y ponerlo en un arreglo de float.
Publicado por: fafafa01 en 17 Mayo 2016, 15:25 pm
gracias funciono, una pregunta, mi profesor me había dicho que en un arreglo era lo mismo esto que esto:

arreglo[0] <--> &(arreglo[0])

¿es verdad?


Título: Re: Leer un archivo de texto con fscanf y ponerlo en un arreglo de float.
Publicado por: ivancea96 en 17 Mayo 2016, 15:27 pm
gracias funciono, una pregunta, mi profesor me había dicho que en un arreglo era lo mismo esto que esto:

arreglo[0] <--> &(arreglo[0])

¿es verdad?

Código
  1. arreglo == &(arreglo[0])

Eso sí. Lo otro, pues no, salvo que se refiriese a otra cosa. arreglo[0] es el elemento 0. &arreglo[0] es la dirección del elemento 0, osea, el valor de 'arreglo'.


Título: Re: Leer un archivo de texto con fscanf y ponerlo en un arreglo de float.
Publicado por: AlbertoBSD en 17 Mayo 2016, 15:32 pm
Código
  1. arreglo == &(arreglo[0])

Eso sí. Lo otro, pues no, salvo que se refiriese a otra cosa. arreglo[0] es el elemento 0. &arreglo[0] es la dirección del elemento 0, osea, el valor de 'arreglo'.

Para el caso especifico del 0 es valido.

Para casos generalizados
Código
  1. arreglo[i]

es el valor del arreglo en ese indice

Código
  1. &arreglo[i]

es la direccion en memoria de ese indice

saludos.