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

Steven Davidson srd4121 en njit.edu
Vie Mar 20 07:16:44 CET 2009


Hola Pablo,

Pablo Brunet wrote:
> no amigo, el archivo que estoy abriendo fue generado con este
> algoritmo y si es un binario:
> 

Analizando este código fuente junto con el otro que enviaste en otros 
correos-e, he encontrado el problema. Escribes lo siguiente:

int main()
{
   m = fopen( "pablo.txt"," rb" );
   fseek( m, 0, 0 );
   fread( &v, sizeof(v), 1, m );
   ...
}

Tienes el problema en la primera lectura. Indicas que cada elemento a 
leer ocupa 'sizeof(v)' que en tu caso es '100*sizeof(p)' que puede ser 
6000 bytes. Como no hay tantos bytes en el fichero, llegamos al final 
del fichero, por lo que la condición del bucle 'while' es falsa.

Lo que seguramente querías hacer es leer el primer registro. Esto 
vendría a ser lo siguiente:

fread( v, sizeof(v[0]), 1, m );

Además, escribiste que el primer parámetro es '&v', cuando realmente 
debería ser 'v'. Recuerda que un array es una dirección de memoria.


Espero que esto te sirva.

Steven





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