Leer una serie de datos en un fichero que están estructurados en 3 columnas(por lo que los leo con fscanf) y almacenar estos en una estructura de datos para posteriormente volverlos a escribir un fichero nuevo.
Yo me he ido informando y he estado viendo que hay casos en los que se usa memoria dinámica o algo así, y es algo que nunca hemos visto y que además el profesor ha descartado. Parece ser que tengo que usar struct con vectores, pero con lo que intento siempre me da error. Esto es un intento:
Código:
Como ven, mi estilo de programación no es muy bueno, pero ya irá mejorando, espero que podáis ayudarme; llevo mucho tiempo rompiéndome la cabeza #include <stdio.h> #include <string.h> #define N 200 struct productos{ char codigoLeidoFichero[50]; char nombre[50]; double *precio; }; int leerFichero(struct productos prod[]) { int i=0; FILE*f1=fopen("productos.txt","r"); if(f1==NULL) { printf("Error al abrir el archivo\n"); } else { while(!feof(f1)) { fscanf(f1,"%s %s %lf",prod[i].codigoLeidoFichero,prod[i].nombre,prod[i].precio); i++; } } fclose(f1); return i; } void EscribirNuevoFichero(int i, struct productos prod[]) { int j=0; FILE*f1=fopen("nuevo.txt","w"); while(j<=i) { fprintf(f1,"%s %s %lf",prod[j].codigoLeidoFichero,prod[j].nombre,*prod[j].precio); j++; } fclose(f1); } int main(void) { struct productos prod[N]; int i; leerFichero(prod); EscribirNuevoFichero(i,prod); return 0; }
Muchas gracias!!