Archivo de Recetas: contiene el código de receta (númerico de 1 a 50),
el número de registro de donde se encuentra el ingrediente que forma la receta y
la cantidad necesaria de ese ingrediente para preparar la receta.
El archivo esta ordenado por código de receta. Una receta tiene uno o más ingredientes.
Archivo de Ingredientes: indica el nombre del ingrediente (alfabético de 15 elementos),
el stock actual de dicho ingrediente y el costo de cada unidad en stock.
(NO debe suponer que siempre hay stock suficiente para atender una receta).
y tengo la codificación:
Código:
#include <stdio.h>
#define TAM 10
#define MSG 1
typedef struct
{
int codReceta;
int nroRegIngr[30]; //vector de ingredientes
int cantIngr[30]; //vector de cantidad de ingredientes
int cantRegIngr;
}t_receta;
typedef struct //estructura de ingredientes
{
char nroRegIngr;
char nomIngr[16];
int stock;
float precio;
}t_ingrediente;
int main()
{
FILE *rece;
FILE *pingre;
if(!abrirArchivo(&rece,"recetas.bin","rb",MSG))
return 1;
if(!abrirArchivo(&pingre,"ingredientes.bin","rb",MSG))
{
fclose(pingre);
return 2;
}
if(rece)
{
int conta=1;
while (!feof(rece))
{
///procesar recetas
}
}
else
{
puts("imposible abrir archivo");
}
return 0;
}
void CrearArchivo()
{
FILE *prec=fopen("recetas.bin","wb");
FILE *pingre=fopen("ingredientes.bin","wb");
t_receta re []={{1,3,4,4 },
{2,4,5,5 }};
t_receta re2[]={{1,"harina",4.0 },
{2,"huevo",4.0 },
};
if(prec!=NULL )
{
fwrite(re, sizeof(re),1,prec);
fclose(prec);
}
if(pingre!=NULL)
{
fwrite(re, sizeof(re2),1,pingre);
fclose(pingre);
}
}
en que estoy fallando?