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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Problema con la lectura de este archivo Binario en: 27 Septiembre 2021, 20:36 pm
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5.  
  6. struct ARTI {
  7.    short int ART;
  8.    char COD[50];
  9.    char DESC[100];
  10.    char FAB[50];
  11.    short int STOCK;
  12.    int POS;
  13. }    ;
  14.  
  15.  
  16. int main()
  17. {
  18.    FILE * FP;
  19.    struct ARTI X;
  20.  
  21.  
  22.    if((FP = fopen("BDARTICULOSindexado","rb")) == NULL)
  23.    {
  24.        printf("\n\n\t ERROR EN LA APERTURA DEL ARCHIVO\n\n");
  25.        exit(1);
  26.    }
  27.  
  28.    fread(&X,sizeof(X),1,FP);
  29.    printf("\n\n %5s %10s %30s %27s %8s %15s","ARTICULO","CODIGO","DESCRIPCION","FABRICANTE","STOCK","POSICION");
  30.  
  31.    while(!feof(FP))
  32.    {
  33.        printf("\n\n %5d %15s %35s %20s %8d %10d ",X.ART , X.COD , X.DESC , X.FAB , X.STOCK , X.POS);
  34.        fread(&X,sizeof(X),1,FP);
  35.    }
  36.  
  37.  
  38.    fclose(FP);
  39.  
  40.    printf("\n\n\n\n");
  41. }
  42.  

El problema acá es que a la hora de ver en pantalla el printf con los datos muestra algunas cosas que están en la base de datos y otra parece basura del sistema; la base de datos es correcta porque ya la utilicé en otros programas. No se que hacer realmente, si me pudieran ayudar se los agradecería.

MOD: Etiqueta GeSHi
2  Programación / Programación C/C++ / Ayuda con el uso de & y * en C en: 28 Agosto 2021, 04:26 am
Que tal, tengo unas dudas respecto a cuestiones con punteros en C que no logro entender,  espero que me puedan ayudar, se los agradecería mucho.

El codigo es el siguiente:

struct alumno{
    int legajo;
    char genero;
    char nombre[30];
    float promedio;
};

int main(){

struct alumno *P; // PUNTERO PARA EL VECTOR DE ESTRUCTURAS EN MEMORIA DINAMICA
   int I;


    P = (struct alumno*) malloc(3 * sizeof(struct alumno));


    printf("\n\n\t INGRESO DE LOS DATOS");


       for( I = 0 ; I < N ; I++)
        {
            printf("\n\n\t INGRESE EL NOMBRE : ");
            gets((P+I)->nombre);

            printf("\n\t INGRESE EL LEGAJO : ");
            scanf("%d", &((P+I)->legajo));

            printf("\n\t INGRESE EL GENERO : ");
            scanf("%c", &((P+I)->genero));

            printf("\n\t INGRESE EL PROMEDIO : ");
            scanf("%f", &((P+I)->promedio));
            fflush(stdin);
        }

Lo que no logro entender es por que en los scanf es necesario utilizar el operador & para su direccion en memoria. No es que al estar apuntando a un campo de la struct alumno ya es una dirección? Y por que en el caso del gets no necesito ponerlo? No lo entiendo.

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