Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - tiinchuzz

#1
HOLA GENTE SOY NUEVO EN ESTE FORO... ESTE ERROR QUE ME TIRA MI PROGRAMA ME TIENE PODRIDO Y QUIERO TERMINAR ESTE PROGRAMA POR FAVOR DIGANME QUE HAGO Y DONDE ESTA EL ERRO... YA ESTOY LOCO:

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
  • ;
                z++;
            }
            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++;
        }
    }