AYUDA EN C (archivos)
Publicado por mar (5 intervenciones) el 11/08/2005 02:47:38
Definir un tipo de datos que represente a una persona, siendo sus campos: el nombre (char *), el apellido (char *), cédula (char [10]) y la edad (int). Llamar PERSONA a este tipo de datos.
Escribir un programa que lea el contenido de un archivo de texto en el que cada línea contenga los datos que definen a una persona (de acuerdo al tipo de datos mencionado anteriormente), y rellene de esa forma una arreglo de variables de tipo PERSONA. El programa debe recibir el nombre del archivo a leer como argumento, teniendo que introducirse éste en la misma línea que ejecuta el programa. Para ello la función main debe tener el prototipo estándar int main(int argc, char *argv[]). El programa debe comprobar que el número de líneas que se van leyendo no supera la dimensión del arreglo definido (Máximo 200). Una vez terminado de leer el archivo debe imprimirse a pantalla los datos de todas las personas (una por línea), y liberarse toda la memoria que se haya ocupado dinámicamente.
UTILIZAR las funciones:
• malloc y free: para alocar y liberar memoria.
HE HECHO UN POCO PERO NO ME CORRE Y ME DIERON TIEMPO PARA ENTREGARLO EL SABADO PODEIS AYUDARME ES QUE ESTOY APRENDIENDO EN C Y NO PUEDO TERMINARLO ALGO ESTA MAL EN EL CODIGO Y NO SE QUE ES? GRACIAS POR SU AYUDA
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#define N 200
struct PERSONA //
{
char nombre[];//
char apellido[];//
char cedula[10];
char edad;
}datos;
main(char *argv[])
{
struct PERSONA n[N];
int i;
clrscr();
printf("Introduzca el nombre del archivo a leer: ");
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");
}
fclose(archivo)
getch();
return 0;
}
Valora esta pregunta


0