buondì a tutti!
sono 3 giorni che cerco di risolvere un esercizio lasciato dal mio prof e dato che ho l'esame di fondamenti tra una settimana è meglio che abbia chiaro quest'ultimo passaggio :P
l'esercizio consiste nel creare una funzione capace di memorizzare da un file binario i valori di 3 campi "nome" "cognome" "telefono".
ora, gli errori possono essere due:
o sto allocando male la memoria (non mi pare),
o dopo 130412 prove continuo a fare degli errori nella gestione di fread (molto probabile)
io per darvi un'idea chiara posto sia tutto il sorgente che anche il file .bin
nel mentre vado a studiare analisi :P
grazie in anticipo!
codice:
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <stdio.h>
/* definisco la struttura */
struct contatto {
char nome[255];
char cognome[255];
char telefono[255];
};
struct contatto *link;
/* corpo della prima1 funzione */
void contatto_read_bin (struct contatto *pc, FILE *f) {
link = malloc(sizeof(struct contatto));
fread(pc->nome, sizeof(char), 255, f);
fread(pc->cognome, sizeof(char), 255, f);
fread(pc->telefono,sizeof(char), 255, f);
}
/* corpo della seconda funzione
void contatto_print (struct contatto *pc, FILE *f) {
}
*/
main(){
FILE *frp;
FILE *fwp;
frp=fopen("contatto1.bin", "rb");
fwp=fopen("contatto.txt", "rt");
if (frp==NULL || fwp==NULL){
printf("errore nell'apertura di un file");
system("pause");
exit(1);
}
contatto_read_bin (link, frp);
printf("\n i valori letti dal file sono: \n nome: %s \ncognome: %s \n numero di telefono: %s.", link->nome, link->cognome, link->telefono);
/*
contatto_print (pc, fwp); */
}
siccome html.it non prevede l'upload di file .bin vi lascio il link al file uppato su mega:
https://mega.co.nz/#!8g4FBaBA!LJflRC...e4k6bG7CuAcTTA