elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Problema Fwrite en: 1 Junio 2013, 15:46 pm
Hola pues estoy haciendo un programa de una base de datos de una frutería utilizando ficheros. Mi problema es que el Fwrite no me lo acaba de hacer bien. Y ya me estoy desesperando un poco porque soy incapaz de ver la razón.

Haber si podéis echarme una mano! Gracias.   

Aquí dejo el código en principio solo es de la función.

La cuestión de esta función es hacer compras automáticas desde un archivo "comprasxx".txt le pongo "manzanas 2" y lo que debe hacer es aumentar el inventario.



Código:
void compra_auto( int cont){	   
        char fichero[10];
        char fruta[20];
        int cantidad = 0;
        int existe = 0;
        int i;
        struct tfruteria frut;
       
        if ((loog = fopen("log.txt", "a+")) == NULL){
        printf ("Error en obertura del fitxer per a lectura.\n");
        }
       
        printf ("Dame el nombre del fichero: ");
        scanf ("%s", fichero);
       
        cmp = fopen (fichero, "r");
        if (!cmp){
        cmp = fopen("compras00.txt", "r");           
        printf ("No existe el archivo se cogera el archivo por defecto\n");
        fscanf (cmp, "%s  %d", fruta, &cantidad);
        fclose (cmp);
           
           if ((dat = fopen("fruites.dat", "rb+")) == NULL){
            } else{
            fflush(stdin);
            rewind(dat);
            fread (&frut, Mida, 1, dat);
            i=1;
            while (!feof(dat)){
                  if(strcmp(fruta,frut.nom)==0){
                       printf ("La fruta existe!!\n");             
                       existe ++;
                       fprintf(loog,"Compra;%d;OK;%d;%d;%d\n",i,frut.quantitat, cantidad, frut.quantitat+cantidad);
                       fclose (loog); 
                       frut.quantitat=frut.quantitat+cantidad;
                       printf ("Ahora el estoc de %s es de: %d", frut.nom, frut.quantitat);
                       } //if si fruta existe
                       i++;
                        fread (&frut, Mida, 1, dat);
                        }//while
            if(existe == 0){
            printf ("La fruta no existe!!\n");   
            }else if (existe == 1){
             rewind(dat);
                       if(fwrite(&frut, Mida,1, dat) == 1)       
                       printf("\n Fruita modificada!! ");     
                       }else{
                       printf("No he pogut escriure el registre al buffer del fitxer\n");
                       fclose (dat);
                       }
                       }
                                     
                    }else{
                     printf ("El fichero si que existe se realizara las opciones oportunas\n");
                    fscanf (cmp, "%s  %d", fruta, &cantidad);
        fclose (cmp);
           
           if ((dat = fopen("fruites.dat", "rb+")) == NULL){
            } else{
            fflush(stdin);
            rewind(dat);
            fread (&frut, Mida, 1, dat);
            while (!feof(dat)){
                  if(strcmp(fruta,frut.nom)==0){
                       printf ("La fruta existe!!\n");             
                       existe ++;
                       frut.quantitat=frut.quantitat+cantidad;
                       printf ("Ahora el estoc de %s es de: %d", frut.nom, frut.quantitat);
                       } //if si fruta existe
                        fread (&frut, Mida, 1, dat);
                        }//while
            if(existe == 0){
            printf ("La fruta no existe!!\n");   
            }else if (existe == 1){
           rewind(dat);
                       if(fwrite(&frut, Mida,1, dat) == 1)       
                       printf("\n Fruita modificada!! ");     
                       }else{
                       printf("No he pogut escriure el registre al buffer del fitxer\n");
                       fclose (dat);
                       }
                     }
                     }//else
                     }//funcion   
             
   


Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines