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!
siccome html.it non prevede l'upload di file .bin vi lascio il link al file uppato su mega: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); */ }
https://mega.co.nz/#!8g4FBaBA!LJflRC...e4k6bG7CuAcTTA

Rispondi quotando
