Fichero secuenciales binarios


21 de Agosto del 2017

Hola buenas tengo en siguiente codigo:


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct stock{
int cod_Articulo;
int nivel_maximo;
int nivel_minimo;
int nivel_actual;
char proveedor[30];
int precio;
}regstock;

struct pedidos{
int cod_Articulo;
char proveedor[30];
int total_pedido;
}regpedidos;


int main()
{
FILE *stock,*pedidos;

stock = fopen("stock.dat","rb+");
pedidos = fopen("pedidos.dat","rb+");

if(stock == NULL || pedidos == NULL)
{
puts("Error al intentar leer los archivos");
}
else
{
while(!feof(stock))
{
fread(&regstock,sizeof(regstock),1,stock);
if(regstock.nivel_actual<regstock.nivel_minimo)
{
regpedidos.cod_Articulo=regstock.cod_Articulo;
strcpy(regpedidos.proveedor,regstock.proveedor);
regpedidos.total_pedido=regstock.nivel_maximo-regstock.nivel_actual;
fwrite(&regpedidos,sizeof(regpedidos),1,pedidos);
}
}
}

fclose(stock);
fclose(pedidos);

return 0;
}


Lo que quiero saber si este código esta bien, necesito leer el fichero stock, y si el nivel actual es menor que el nivel mínimo, grabar los datos en el fichero pedidos. El total_pedido es la cantidad máxima de pedido que hacer que hacer hasta llegar al nivel máximo.

Me refiero a que si mi código esta bien para leer un fichero, cumplir una condición y si es así, escribir datos en otro fichero. No puedo saber si anda ya que los ficheros stock y pedidos, no los tengo hay que imaginar que están hechos con contenido almacenado en su interior.