PDA

View Full Version : [C] salvare struttura


telluccio
12-10-2007, 19:10
buona a tutti.
ringrazio anticipatamente per eventuali consigli.
data la struttura .c:
struct Dati
{
char nome[16];char cognome[16];chareta[4];}anagrafe[9];
e dopo averla scanf-atta quale strada mi consigliate per salvare o caricare la struttura su o da disco??
grazie, ciao.

andbin
12-10-2007, 19:48
data la struttura .c:
struct Dati
{
char nome[16];char cognome[16];chareta[4];}anagrafe[9];
e dopo averla scanf-atta quale strada mi consigliate per salvare o caricare la struttura su o da disco??La prima cosa da fare è stabilire il formato dei dati nel file. Si può scegliere innanzitutto un formato binario o un formato testuale.
Nel primo caso (binario) si può leggere/scrivere l'intero contenuto della struttura tramite fread/fwrite. Questo va bene se nella struttura non ci sono puntatori (e nel tuo caso non ci sono) perché non avrebbero senso una volta riletti.
Nel secondo caso (testuale) ci sono svariate possibilità: una ad esempio è quella di mettere ogni "record" (struttura) su una unica riga usando un qualche carattere come delimitatore dei campi.

Ci sono molti fattori che determinano la scelta del formato dei dati, come ad esempio la facilità di lettura/scrittura, la possibilità di accedere in modo "casuale" ad un record (se fosse binario e di lunghezza fissa), se deve essere un file "human readable" (leggibile dall'utente).

Insomma ... le possibilità sono molte.

Ma tu forse volevi solo un consiglio..... il mio è quello di usare il formato binario, leggi e scrivi l'intera struttura con fread/fwrite. Semplicissimo.

telluccio
12-10-2007, 20:48
ok..grazie, il binario e un buon consglio.
fread e fwrite leggono o scrivono dal flusso stream n oggetti di dimensione salvandoli in un vettore..perfetto..lo provo.