sigo con problemas :(, ahora no me muestra nada, solo presione una tecla para continuar..., el archivo posee 2 registros en este orden:<div><br><div>TUCUMAN    JUAN    31</div><div>SALTA       PABLO    29  <br><div><br></div>
<div><div># include <stdio.h></div><div># include <stdlib.h></div><div># include <iostream></div><div><br></div><div>using namespace std;</div><div><br></div><div><br></div><div>typedef struct p {</div><div>
       char nombre[20];</div><div>       int edad;</div><div>       char provincia[30];};</div><div>        </div><div>FILE * m;        </div><div>int i=0;</div><div>p v[100];</div><div><br></div><div>int main()</div><div>
{</div><div> m=fopen("pablo.txt","rb");</div><div> fseek(m,0,0);</div><div> fread(&v,sizeof(v),1,m);</div><div> i=1;</div><div> while (!feof(m)){</div><div>       cout<<endl<<"  "<<v[i].provincia<<"  "<<v[i].nombre<<"  "<<v[i].edad<<endl; </div>
<div>       fread(&v[i],sizeof(v[1]),1,m);</div><div>       i++;}</div><div> fclose(m);</div><div><br></div><div> system("PAUSE");</div><div>}</div><div> </div><br><div class="gmail_quote">El 19 de marzo de 2009 22:30, Pablo Brunet <span dir="ltr"><<a href="mailto:cirujatuc79@gmail.com">cirujatuc79@gmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">wow!! que simple!!! la verdad es que yo solo, me complico mas de la cuenta, ahora si!!! anda perfecto!<div><br></div><div>
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!!.<br>

<br><div class="gmail_quote">El 19 de marzo de 2009 22:10, Steven Davidson <span dir="ltr"><<a href="mailto:srd4121@njit.edu" target="_blank">srd4121@njit.edu</a>></span> escribió:<div><div></div><div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hola Pablo,<div><br>
<br>
Pablo Brunet wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hola a todos de nuevo!<br>
<br>
bueno sigo abordando el tema de las estructuras de datos en C y estoy<br>
en una encrucijada, trato de resolver un ejercicio en el cual me<br>
piden que lea desde un archivo que contiene algunos registros DE<br>
PERSONAS y cuyos campos son localidad, nombre y edad. diseñe el<br>
siguiente algoritmo pero me quede en la parte de llenar el vector con<br>
los datos del archivo.... yo había ideado esto:<br>
<br>
</blockquote>
<br></div>
Veamos el código fuente.<div><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
# include <stdio.h><br>
# include <stdlib.h><br>
# include <iostream><br>
<br>
using namespace std;<br>
<br>
<br>
typedef struct p {<br>
       char nombre[20];<br>
       int edad;<br>
       char provincia[30];};<br>
        FILE * m;        int i;<br>
p v[100];<br>
<br>
int main()<br>
{<br>
 m=fopen("pablo.txt","rb");<br>
 fseek(m,0,0);<br>
 fread(&v,sizeof(v),1,m);<br>
</blockquote>
<br></div>
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,<br>
<br>
i = 1;<div><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 while (!feof(m)){<br>
       v[i]=v.nombre;  // ACA ME QUEDE Y NO SE COMO HACERLO... :(<br>
</blockquote>
<br></div>
Aparte de ser incorrecto, esto no es necesario. La función 'fread()' ya ha leído y guardado la información en 'v'.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
       ..............<div><br>
       fread(&v,sizeof(v),1,m);<br>
</div></blockquote>
<br>
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,<br>
<br>
fread( v+i, ... );<br>
<br>
o si lo prefieres,<br>
<br>
fread( &v[i], ... );<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
       I++ }<br>
 system("PAUSE");<br>
</blockquote>
<br>
Recuerda que debes cerrar el fichero antes de terminar el programa.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
}<br>
<br>
</blockquote>
<br>
Espero que esto te aclare las dudas.<br>
<br>
Steven<br>
<br>
<br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</blockquote></div></div></div><br>
</div>
</blockquote></div><br></div></div></div>