C/Visual C - ayuda con archivos

 
Vista:

ayuda con archivos

Publicado por el aprendiz (5 intervenciones) el 09/08/2005 03:36:17
debo de hacer un programa que lea datos de un archivo de texto en el cual hay datos tipo struct
esos datos debo capturarlos en un array o arreglo de 200 posiciones y finalmente mostrarlo en pantalla, todo iba bien hasta que quise capturar los datos al arreglo no se como
yo los hice asi:
i=0;
mientras no sea el final de archivo leer datos(utilizado como alias)
arreglo[i]= datos; i++; pero no los captura y no se como hacerlo ademas creo que captura uno pero de forma rara y no los imprime!!
la estructura contiene los siguientes campos
nombre,apellido,identificacion y edad, por si alguien puede ayudarme se los agradesco
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda con archivos

Publicado por El Mogur (202 intervenciones) el 09/08/2005 23:50:56
Es mejor que pongas alguna sección de código, para ver dónde te has equivocado...

De todas formas, según lo que almacenas en la estructura, podría ser porque las cadenas (nombre, apellido), las guardas como un puntero a caracter (char *) donde está la cadena; si es así, al grabarse en el fichero, se guarda la dirección de la cadena, y no su contenido.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ayuda con archivos

Publicado por mar (5 intervenciones) el 10/08/2005 00:18:39
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#define N 200

struct PERSONA // Tipo de dato pricipal de programa
{
char nombre[50];
char apellido[50];
char cedula[10];
char edad;
}datos;

main(char *argv[])

{
struct PERSONA n[N];
int i;
clrscr();
printf("Introduzca el nombre del archivo a leer: ");
//lo hago opcional para revision pero asi no va
scanf("%s",argv[1]);
FILE *archivo;

if ((archivo= fopen(argv[1], "r")) == NULL)
{
printf("PROBLEMAS AL ABRIR EL ARCHIVO\n");
exit(1);
}
else
{
i=0;
while(!feof(archivo))
{
fread(&datos, sizeof(struct PERSONA),1,archivo);
n[i]=datos;
i++;
}
}

for(i=0;i<20;i++)
{
printf("%6s",n[i]);
printf("\n");
}
getch();
return 0;
}

estoy aprendiendo y no se si esta bien si hay otra forma de hacerlo ayudenme pls!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar