Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: andoporto en 19 Febrero 2015, 22:16 pm



Título: Error al grabar en estructuras
Publicado por: andoporto en 19 Febrero 2015, 22:16 pm
Hola tengo el siguiente enunciado:

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?