ESTO ES PARTE DE MI PROGRAMA Y ES DONDE ME TIRA EL ERROR
#include <stdio.h>
#include <string.h>
#define MAXPROD 100
int i=0, contador, j=0;
//-------------------------------------------------------------
struct detalle
{
char NombreProd[20];
char Codigo[20];
char SectAlmacen[20];
int CantComp;
int Minimo;
float PrecioCompra;
float PorcentajeGan;
float PrecioVta;
};
struct detalle producto[MAXPROD];
//--------------------------ACA ES DONDE ME TIRA EL ERROR----------------------------------------
void vectorizar(char* b, char a[10][30])
{
int x=0,y=0,z=0;
while(b
- !='\0')
if(b
- !='¥')//nos muestra que termino un dato de otro lo utilizamos como separador
a[y][z]=b
- ;
}
else
{
a[y][z]='\0';// Finaliza el texto del archivo
y++;
z=0;
}
x++;
}
}
//---------------------------------------------------------------------------------
void inicio()
{
FILE*fichero=fopen("datos.txt","rt");
char line[99]="",vector[10][30];
while(fread(&line,sizeof(line),1,fichero)==1)
{
vectorizar(line,vector);//Pasamos 100 caracteres a vectorizar para separarlos
strcpy(producto.NombreProd,vector[1]);
strcpy(producto.Codigo,vector[0]);
strcpy(producto.SectAlmacen,vector[5]);
producto.CantComp=atoi(vector[2]);
producto.PrecioCompra=strtof(vector[3],'\0')*1.0;
producto.PorcentajeGan=strtof(vector[4],'\0')*1.0;
producto.PrecioVta=strtof(vector[6],'\0')*1.0;
contador= atoi(vector[7]);
producto.Minimo= atoi(vector[8]);
i++;
}
fclose(fichero);
}
//---------------------------------------------------------
void guardar()
{
char line[99]="";
FILE*fichero=fopen("datos.txt","rt+");
for(i=0;i<contador;i++)
{
sprintf(line,"%s%c",producto.Codigo,'_');
sprintf(line,"%s%s%c",line,producto.NombreProd,'_');
sprintf(line,"%s%d%c",producto.CantComp,'_');
sprintf(line,"%s%9.2f%c",line,producto.PrecioCompra,'_');
sprintf(line,"%s%9.2f%c",line,producto.PorcentajeGan,'_');
sprintf(line,"%s%s%c",line,producto.SectAlmacen,'_');
sprintf(line,"%s%9.2f%c",line,producto.PrecioVta,'_');
sprintf(line,"%s%d%c",line,contador,'_');
sprintf(line,"%s%d%c",producto.Minimo,'_');
fwrite(&line,sizeof(line),1,fichero);
}
fclose(fichero);
}
//-------------------------------------------------------------------------------------
void pausa()
{
printf("\n\nPresione Enter");
fflush(stdin);
getchar();
menu();
}
//---------------------------------------------------------------------------------------
void mayuscula(char*h)
{
int i=0;
while(h!='\0')
{
h=toupper(h);
i++;
}
}