E 'possibile scrivere un intero struct in un filescrittura Structs in un file in c
esempio:
struct date {
char day[80];
int month;
int year;
};
E 'possibile scrivere un intero struct in un filescrittura Structs in un file in c
esempio:
struct date {
char day[80];
int month;
int year;
};
E' possibile scrivere un intero struct in un file
La tua domanda è in realtà la scrittura di istanze struct in file.
fwrite
per ottenere ciò.sizeof
ogni oggetto nel secondo argomentobinary mode
.Attento con endianness quando si scrive/legge in sistemi little endian e si legge/scrive in sistemi big endian e viceversa. Leggi how-to-write-endian-agnostic-c-c-code
struct date *object=malloc(sizeof(struct date));
strcpy(object->day,"Good day");
object->month=6;
object->year=2013;
FILE * file= fopen("output", "wb");
if (file != NULL) {
fwrite(object, sizeof(struct date), 1, file);
fclose(file);
}
Li può leggere nello stesso modo .... utilizzando fread
struct date *object2=malloc(sizeof(struct date));
FILE * file= fopen("output", "rb");
if (file != NULL) {
fread(object2, sizeof(struct date), 1, file);
fclose(file);
}
printf("%s/%d/%d\n",object2->day,object2->month,object2->year);
deve anche fare attenzione con il riempimento della struttura almeno –
I ho anche scritto alcuni oggetti C nel file e voglio leggerli di nuovo ed elaborarli. Ma, non so quali oggetti sono stati scritti in un file, potrebbe essere qualsiasi, quindi, in fright, non saprei sizeof() dell'oggetto che ho letto. Inoltre, come leggere esattamente un obiettivo alla volta? In che modo Fread può conoscere l'inizio e la fine dei byte in un file che rappresenta i limiti dell'oggetto? –
Suppongo, se questo è il caso, dovrebbe esserci una struttura per il file, ad esempio, diciamo che scrivi il tipo in una riga e l'oggetto in un'altra riga, ecc. Quindi dal programma in base al tipo puoi conoscere il dimensione.. – pinkpanther
sì ................. –
Leggete anche questo: [come scrivere struct in un file in c] (http://www.codingunit.com/c-tutorial-binary-file-io) –