Liste aus Datei einlesen
-
Hey..
ich muss ne Beleg für mein Studium machen und komm echt nich weiter.
Mein Problem ist es das ich keine Liste aus einer Datei erstellen kann.
Bin echt am Ende mit den Nerven. Ich hoffe ihr könnt mir helfen.
Hier mein Code fürs einlesen der Datei:#include "konto.h" #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> struct angestellt { char *name[20]; struct angestellt *next; }; struct angestellt *anfang; void liste_einlesen() { FILE *nutzer; struct angestellt *zeiger; zeiger = (struct angestellt *)malloc(sizeof(struct angestellt)); nutzer=fopen("nutzer.txt","r+"); if(nutzer == NULL) { printf("Die Datei konnte nicht geöffnet werden"); } else { while(fscanf(nutzer, "%s #\n", zeiger->name) != EOF) { zeiger = zeiger->next; zeiger->next = (struct angestellt *)malloc(sizeof(struct angestellt)); } } printf("Ende"); }
-
der code sieht doch schon mal nicht so schlecht aus (hab ihgn aber nicht ausprobiert).
Wo liegt denn das Problem?
stürtz ab, compilerit nicht, endlosschleife?
-
Nja des Prob is, das er mitten drin sagt "Zugriffsverletzung beim Lesen an Stelle so und so".
Und das ich nich weiß wie rausbekomme wo ich meinen anfang dann wieder find.
-
struct angestellt { char name[20]; // kein * da dran, du willst ein char-Array, kein Array von Zeigern auf char struct angestellt *next; }; struct angestellt *anfang; void liste_einlesen() { FILE *nutzer; struct angestellt *zeiger; zeiger = (struct angestellt *)malloc(sizeof(struct angestellt)); // malloc nicht casten etc. http://www.c-plusplus.net/forum/viewtopic.php?t=206606 nutzer=fopen("nutzer.txt","r+"); if(nutzer == NULL) { printf("Die Datei konnte nicht geöffnet werden"); } else { while(fscanf(nutzer, "%s #\n", zeiger->name) != EOF) { zeiger = zeiger->next; // hier verlierst du den Kopf deiner Liste, ist dir das klar? Und woher willst du wissen was in next drinsteht? zeiger->next = (struct angestellt *)malloc(sizeof(struct angestellt)); // siehe oben } } printf("Ende"); }
-
Und wie krieg ich hin des es läuft?