Ho scaricato CodeBlocks 13.12 per windows
ho ridotto il programma all'osso...
alla fine credo che ci sia un bag sulla funzione fread...
mi spiego meglio:
il tutto viene compilato senza errori ma quando lanciamo l'eseguibile se inputiamo il numero 26 fread non digerisce questo intero.....
il file dat generato aperto con un lettore esadecimale è ben riempito...
il codice è il seguente:
# include <stdio.h>
#include <stdlib.h>
struct elemento{
long matricola;
int materie;
};
int main ()
{
FILE *pf;
int i, num;
struct elemento el;
pf=fopen("numeri.dat","w");
if (pf)
{
for (i=0; i<4; i++)
{
printf("inserisci la matricola: ");
scanf("%ld", &(el.matricola));
printf("inserisci il numero di esami: ");
scanf("%d", &el.materie);
fwrite(&el, sizeof( struct elemento), 1, pf);
}
fclose (pf);
}
else
exit(1);
pf = fopen("numeri.dat","r");
if (pf)
{
for (i=0; i<4; i++)
{
fread(&el, sizeof(struct elemento), 1, pf);
//printf("%ld %d\n",el.matricola, el.materie);
printf("matricola: %ld\t materie: %d\n", el.matricola, el.materie);
}
fclose(pf);
}
else
exit(1);
}
l'eventuale bug nel compilatore a chi va segnalato?
grazie