Hola a todos! Miren, lo que me ocurre es que nos acaban de explicar en clase muy por encima lo que son los struct y como funcionan, por lo que sé bastante poco, y resulta que nuestro profesor, nos ha mandado hacer un ejercicio que debe hacer lo siguiente:
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:
#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;
}
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
Muchas gracias!!