Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Apoyo con manejo de archivos

Estas en el tema de Apoyo con manejo de archivos en el foro de C/C++ en Foros del Web. Buenas, estoy con un poncho en el manejo de archivos.... creo el archivo el cual tiene la siguiente estructura Código: struct reg_art { char cod_art[10]; ...
  #1 (permalink)  
Antiguo 07/07/2009, 14:49
 
Fecha de Ingreso: julio-2009
Mensajes: 5
Antigüedad: 14 años, 9 meses
Puntos: 0
Pregunta Apoyo con manejo de archivos

Buenas, estoy con un poncho en el manejo de archivos.... creo el archivo el cual tiene la siguiente estructura
Código:
struct reg_art {
  char cod_art[10];
  char des_art[50];
  int cos_art[10];
  int stk_art[10];
  int min_art[10];
};
main ()
{
  struct reg_art art;
  int fd, vali;
  char aux_char[50];
  int aux_int[10];

    fd = open("mae_art.txt", W_OK);
    if (fd == -1)
      printf ("\nError -  No se puede abrir archivo mae_art.txt.");
    else {
        printf ("\nCodigo Articulo: ");
        gets(aux_char);
        
      while (strlen(aux_char) > 0) {
        memset (&art, '\0', sizeof(struct reg_art));
        strcpy (art.cod_art, aux_char);
        
        printf ("\nDescripcion: ");
         gets(aux_char);
          strcpy (art.des_art, aux_char);
        
        printf ("\nCosto Unitario: ");
         scanf( "%d",&aux_int );
          art.cos_art[1]=aux_int[1];
        
        printf ("\nStock: ");
         scanf( "%d",&aux_int );
          art.stk_art[1]=aux_int[1];
        
        printf ("\nStock Minimo: ");
         scanf( "%d",&aux_int );
          art.min_art[1]=aux_int[1];
                
             write (fd, &art, sizeof(struct reg_art));
             printf("stock minimo %d", &aux_int);
             printf ("Desea agregar otro Articulo - SI(1) - NO(0): ");
             scanf ("%d",&vali);
                if (vali == 1 ){
                    printf ("\nCodigo Articulo: ");
                    gets(aux_char);
                }
      }//Fin While
    }//Fin Else
}//Fin Main
Mi problema se genera cuando intento almacenar datos ito INT (cos_art, stk_art, min_art), se que tengo mal declarado el tema ya que me almacena puros garabatos, si alguien me dijese que poner en vez de
Código:
scanf( "%d",&aux_int );
art.cos_art[1]=aux_int[1];
Se lo agradeceria millon, de antemano gracias
  #2 (permalink)  
Antiguo 08/07/2009, 10:06
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 60
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Apoyo con manejo de archivos

La función write escribe datos en binario, entonces cuando guardas las estructura te gurada los datos en el archivo en formato binario.
Si los lees de nuevo con la función read, deberian verse bien.

Para guardar datos en formato texto en lugar de guardar toda la estructura te conviene guardar campos individuales tal ves con la función fputs o fprintf.

Espero que te sirva.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:55.