Ist es möglich, eine ganze Struktur in eine Datei zu schreiben
Beispiel:
struct date {
char day[80];
int month;
int year;
};
amarVashishth
Ist es möglich, eine ganze Struktur in eine Datei zu schreiben
Beispiel:
struct date {
char day[80];
int month;
int year;
};
Pinker Panther
Ist es möglich, eine ganze Struktur in eine Datei zu schreiben
Ihre Frage schreibt eigentlich Strukturinstanzen in eine Datei.
fwrite
Funktion, um dies zu erreichen.sizeof
jedes Objekt im zweiten Argumentbinary mode
.Seien Sie vorsichtig mit Endianness, wenn Sie in Little-Endian-Systemen schreiben/lesen und in Big-Endian-Systemen lesen/schreiben und umgekehrt. Lesen Sie, wie man Endian-agnostischen-CC-Code schreibt
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);
Auch bei Strukturpolstern sollte er zumindest vorsichtig sein
– Giorgi Moniava
2. April 2015 um 21:34 Uhr
Ich habe auch einige C-Objekte in die Datei geschrieben und möchte sie zurücklesen und verarbeiten. Aber ich weiß nicht, welche Objekte in die Datei geschrieben wurden, es könnte jedes sein, also würde ich die Größe von () des Objekts, das ich gelesen habe, nicht kennen. Wie kann man auch genau ein Objekt auf einmal lesen? Wie fread könnte den Anfang und das Ende von Bytes in einer Datei kennen, die Objektgrenzen darstellt?
– Abhishek Sagar
27. März 2017 um 3:55 Uhr
Ich denke, wenn das der Fall ist, sollte es eine Struktur für die Datei geben, sagen wir zum Beispiel, Sie schreiben den Typ in eine Zeile und das Objekt in eine andere Zeile usw., dann können Sie aus dem Programm basierend auf dem Typ die Größe kennen ..
– Pinker Panther
27. März 2017 um 7:12 Uhr
Warum wird in meinem Fall dieses Skript nur einiges speichern O�[name���)�����������.N=�'@�����������V)�mailH��)�� @���� @
@��` ? Is this because the character encoding is wrong, or else?
Oct 29, 2018 at 18:35
@gaboraron The file written isn’t meant be read by text editors because it’s a serialized form of the in objects. If you want to read it you need to write a C program to read it. You need to look for the end of file. You should look into the output of fread. Look here: msdn.microsoft.com/en-us/library/kt0etdcs.aspx. Generally if it’s positive then something is read.
Oct 30, 2018 at 18:27
Jawohl……………..
– Mitch Weizen
8. Juni 2013 um 7:22 Uhr
Lesen Sie dies auch: wie schreibt man struct in eine datei in c
– Grijesh Chauhan
8. Juni 2013 um 8:10 Uhr