Ich habe eine .map-Datei, die einige Daten von struct enthalten, die ich möchte. Beispiel für die Eingabe in der Map-Datei. .?Abrufen von Daten aus der .map-Datei
ay ~ ÷> ÷> + .ØæK L ÷> C. Db 'ZLE)/@ ø> ay ~ ÷> € +/Ü ÷> €; -. ¥ ÚkmþÿÿÿÐB.yH @ ø> ƒ @ € ÷>
struct student {
char *id;
char name[20];
int age;
};
int main() {
char * buffer;
FILE *fptr;
struct student stud[100];
fptr = fopen("input.map", "wb+");
fread(stud, sizeof(stud), 1, fptr);
for (int i = 0; stud[i].id != NULL; ++i)
{
printf("Name: %s \n", stud[i].name);
printf("Age: %s", stud[i].age);
}
fclose(fptr);
system("pause");
}
jedoch die Ausgabe eine Reihe dieser Zeichen sind die Namen für den Druck ... ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠
zum Drucken des Alters des Schülers -858993460 -858993460 -1533994631 ich weiß nicht, was falsch gelaufen ist.
Bitte korrigieren Sie mich, wenn ich in die falsche Richtung bin. Sehr neu in dieser Sprache. Danke im Voraus.
Sie können Zeiger in einer Datei nicht speichern. Ein Zeiger ist nur innerhalb eines einzelnen Prozesses gültig. –
Sie verwenden auch ['fred'] (http://en.cppreference.com/w/c/io/fread) nicht korrekt. Sie sollten z.B. 'fread (Stud, sizeof (struct Schüler), 100, fptr)'. *** Und *** du solltest überprüfen, was 'fread' * zurückgibt * (sowie natürlich die Funktion' fopen'). –
das [manual für fopen] (http://www.cplusplus.com/reference/cstdio/fopen/) gibt an, dass "w +" * schreiben/aktualisieren: Erstellen Sie eine leere Datei und öffnen Sie sie für die Aktualisierung (sowohl für die Eingabe und Ausgabe). Wenn bereits eine ** Datei mit demselben Namen existiert, wird ihr Inhalt verworfen ** und die Datei wird als neue leere Datei behandelt. * – sp2danny