Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Cargar float desde archivo

Estas en el tema de Cargar float desde archivo en el foro de C/C++ en Foros del Web. Hola saludos a todos, llevo algun tiempo leyendo algunos manuales de C, pero lo de como implementar funciones no me queda claro, espero me puedan ...
  #1 (permalink)  
Antiguo 17/10/2012, 08:24
 
Fecha de Ingreso: octubre-2012
Mensajes: 2
Antigüedad: 11 años, 6 meses
Puntos: 0
Cargar float desde archivo

Hola saludos a todos, llevo algun tiempo leyendo algunos manuales de C, pero lo de como implementar funciones no me queda claro, espero me puedan ayudar, en concreto pregunto, como puedo leer un archivo con decimales, por ejemplo este



Código:
0.01
0.02
0.03
0.04
0.05

meter los valores a un arreglo, el cual ya se su longitud, en este caso es de 5 lugares, para luego usarlo en otras operaciones (sumarlos, restarlos, sacar promedio, etc)
de antemano gracias

Código:
Esto fue lo que yo hice...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


void cargar(char nombre[20], float *datos);

int main() {
    char nombre[20];
    float *vector[5];
    int contador;

   printf("Ingrese el nombre del archivo\n");
   scanf("%s",&nombre);
   printf("El vector cargado es el siguiente\n");
   cargar(&nombre,&vector);
   for(contador=0;contador<5;contador++){
      printf("%f\n",vector[contador]);
      }
   system("PAUSE");
   return 0;
}

void cargar(char nombre[20], float *datos){

   FILE *archivo;
   float numero;
   int contador=0;

   archivo=fopen(nombre,"r");
   if (archivo==0){
      printf("ERROR!!!");
      return 1;
      }
    fscanf(archivo,"%f",&numero);
   for(contador=0;contador<5;contador++){
    datos[contador]=numero;
   fscanf(archivo,"%f",&numero);
   contador++;

   }
}
cuando imprimo el vector dentro de la función lo hace..., pero cuando sale de ella no, me gustaría que me dijeran donde esta el problema, de antemano muchas gracias
  #2 (permalink)  
Antiguo 17/10/2012, 18:11
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Cargar float desde archivo

el problema esta en los tipos del main:

Código C:
Ver original
  1. int main() {
  2.     char nombre[20];
  3.     float vector[5];
  4.     int contador;
  5.  
  6.    printf("Ingrese el nombre del archivo\n");
  7.    scanf("%s",nombre);
  8.    printf("El vector cargado es el siguiente\n");
  9.    cargar(nombre,vector);
  10.    for(contador=0;contador<5;contador++){
  11.       printf("%f\n",vector[contador]);
  12.       }
  13.    system("PAUSE");
  14.    return 0;
  15. }

Fijate que le saque la referencia en la llamada a funcion porque en si mismo ya son una referencia.
  #3 (permalink)  
Antiguo 17/10/2012, 18:24
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 3 meses
Puntos: 94
Respuesta: Cargar float desde archivo

Hola! el error esta en como declaras el arreglo "vector". La forma correcta para lo que queres hacer es:
Código C:
Ver original
  1. float vector[5];
de esta manera deberia andar el programa... Otra cosa, no es necesario que pongas & delante de los arreglos cuando se lo pasas a la funcion. Ademas estas incrementando dos veces la variable "contador" en el for de la funcion

Saludos
  #4 (permalink)  
Antiguo 20/10/2012, 20:17
 
Fecha de Ingreso: octubre-2012
Mensajes: 2
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Cargar float desde archivo

Muchas gracia a todos, ya me que do claro el error

Etiquetas: float, funcion, int, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:13.