Hola, quería saber si alguien me podría ayudar con esto...
Tengo q hacer un estructura q contenga 3 datos y esta misma por una función cargarla dentro de una matriz. esa matriz después me va a servir para actualizar un archivo, q solo se actualiza si el tipo es distinto de 99 y la producción distinta de 0
#include <conio.h>
#include <stdio.h>
#define TAM 3
typedef struct
{
int tipo;
float produccion;
float valor;
}t_parcela;
void ver_archivo(FILE*);
void cargar_matriz(t_parcela*[][TAM]);
void main()
{
int i,j;
FILE*pf;
t_parcela parcela[TAM][TAM];
cargar_matriz(parcela);
pf=fopen("campo.dat","w+b");
{
for(i=0;i<TAM;i++)
for(j=0;j<TAM;j++)
{
if(parcela[j].produccion!=0 && parcela[j].tipo!=99)
{
fseek(pf,((i*TAM)+j+1)*sizeof(t_parcela),0);
fwrite(&parcela[j].tipo,sizeof(int),1,pf);
fwrite(&parcela[j].produccion,sizeof(float),1,pf);
fwrite(&parcela[j].valor,sizeof(float),1,pf);
fseek(pf,(-1L)*sizeof(t_parcela),1);
fseek(pf,0,1);
}
}
}
fclose(pf);
ver_archivo(pf);
getch();
}
void cargar_matriz(t_parcela *p[TAM][TAM])
{
int i,j;
for(i=0;i<TAM;i++)
for(j=0;j<TAM;j++)
{
puts("Escriba el tipo de grano(entero de 1 a 5)");
scanf("%d",&p[j]->tipo);
puts("Escriba la produccion obtenida");
scanf("%f",&p[j]->produccion);
puts("Escriba el valor de la produccion");
scanf("%f",&p[j]->valor);
}
}
void ver_archivo(FILE*pf)
{
t_parcela parcela;
pf=fopen("campo.dat","rb");
fread(&parcela,sizeof(t_parcela),1,pf);
while(!feof(pf))
{
printf("%d",parcela.tipo);
printf("%f",parcela.produccion);
printf("%f",parcela.valor);
fread(&parcela,sizeof(t_parcela),1,pf);
}
fclose(pf);
}
el programa sin querer cargar la matriz anda barbaro pero quiero cargarle un par de datos y despues ver el archivo para ver si al grabar quedo bien,,,
Desde ya Graciaaaas..!