[C con Clase] Pasar datos de un archivo a un vector

Pablo Brunet cirujatuc79 en gmail.com
Vie Mar 20 02:30:32 CET 2009


wow!! que simple!!! la verdad es que yo solo, me complico mas de la cuenta,
ahora si!!! anda perfecto!
otra vez muchísimas gracias!! no sabes cuanto me ayudaste, ahora entro de
lleno en el tema listas y espero llegar para el examen del lunes!, si
apruebo te lo voy a deber gran parte a vos jaja, nuevamente gracias por
su predisposición. Que gran ayuda son estas listas de distribución!!.

El 19 de marzo de 2009 22:10, Steven Davidson <srd4121 en njit.edu> escribió:

> Hola Pablo,
>
> Pablo Brunet wrote:
>
>> Hola a todos de nuevo!
>>
>> bueno sigo abordando el tema de las estructuras de datos en C y estoy
>> en una encrucijada, trato de resolver un ejercicio en el cual me
>> piden que lea desde un archivo que contiene algunos registros DE
>> PERSONAS y cuyos campos son localidad, nombre y edad. diseñe el
>> siguiente algoritmo pero me quede en la parte de llenar el vector con
>> los datos del archivo.... yo había ideado esto:
>>
>>
> Veamos el código fuente.
>
>  # include <stdio.h>
>> # include <stdlib.h>
>> # include <iostream>
>>
>> using namespace std;
>>
>>
>> typedef struct p {
>>       char nombre[20];
>>       int edad;
>>       char provincia[30];};
>>        FILE * m;        int i;
>> p v[100];
>>
>> int main()
>> {
>>  m=fopen("pablo.txt","rb");
>>  fseek(m,0,0);
>>  fread(&v,sizeof(v),1,m);
>>
>
> Después de esta sentencia, segúrate de asignar 'i'. Como ya hemos leído el
> primer registro, empezaremos el bucle con el segundo. Esto es,
>
> i = 1;
>
>   while (!feof(m)){
>>       v[i]=v.nombre;  // ACA ME QUEDE Y NO SE COMO HACERLO... :(
>>
>
> Aparte de ser incorrecto, esto no es necesario. La función 'fread()' ya ha
> leído y guardado la información en 'v'.
>
>        ..............
>>       fread(&v,sizeof(v),1,m);
>>
>
> El problema realmente tiene que ver con los parámetros que pasas a
> 'fread()'. Deberías pasar la dirección de la memoria del elemento donde
> quieres guardar el siguiente registro. Esto sería,
>
> fread( v+i, ... );
>
> o si lo prefieres,
>
> fread( &v[i], ... );
>
>        I++ }
>>  system("PAUSE");
>>
>
> Recuerda que debes cerrar el fichero antes de terminar el programa.
>
>  }
>>
>>
> Espero que esto te aclare las dudas.
>
> Steven
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20090319/9692cc2d/attachment.html>


Más información sobre la lista de distribución Cconclase