it-swarm.com.de

Schreiben von Strukturen in eine Datei in c

Ist es möglich, eine ganze Struktur in eine Datei zu schreiben?

beispiel:

struct date {
    char day[80];
    int month;
    int year;
};
22
amarVashishth

Ist es möglich, eine ganze Struktur in eine Datei zu schreiben?

Ihre Frage besteht darin, Strukturinstanzen in eine Datei zu schreiben.

  1. Sie können dazu die Funktion fwrite verwenden.
  2. Sie müssen die Referenz im ersten Argument übergeben.
  3. sizeof jedes Objekt im zweiten Argument
  4. Anzahl solcher Objekte, die im 3. Argument geschrieben werden sollen.
  5. Dateizeiger im 4. Argument.
  6. Vergessen Sie nicht, die Datei in binary mode Zu öffnen.
  7. Sie können Objekte mit fread aus einer Datei lesen.
  8. Vorsicht mit Endianness, wenn Sie in Little-Endian-Systemen schreiben/lesen und in Big-Endian-Systemen und umgekehrt lesen/schreiben. Lesen Sie 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);
    }
    

Sie können sie auf die gleiche Weise lesen ... mit 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);
33
pinkpanther