Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

C Programmierung : Datei einlesen und in Array aus Structs speichern funktioniert nicht

Hallo ! Ich brauche dringend Hilfe bei folgendem Codeausschnitt:

____________________________________________________


#include <stdio.h>
#include <string.h>
#define LAENGE 100 //länger der einzelnen Zeilen
#define ANZAHL 16 //Anzahl der Zeilen

struct person {
char *name ;
char *geburtsdatum;
int *generation;
char *todesdatum ;
char *geschlecht;
};

int main (void)
{

struct person personen[16];
char proband[10];

   printf("Bitte geben Sie den vollständigen Vornamen des gewünschten Probanden ein:\n");
   scanf ("%s", &proband);
   
   FILE *datei;
char line[ANZAHL][LAENGE];

int i ;
char a;
int j;
char delimiter[] = ",;";
char *ptr;
datei = fopen ("Stammbaum.txt", "r");
if (datei != NULL)
   {
      for(i = 0; i < ANZAHL;i++) {
      fgets(line,LAENGE,datei);

   
      ptr = strtok(line, delimiter); 


         personen.name=ptr;     
         ptr = strtok(NULL, delimiter);
         personen.geburtsdatum=ptr;     
         ptr = strtok(NULL, delimiter);
         personen.generation=ptr;     
         ptr = strtok(NULL, delimiter);
         personen.todesdatum=ptr;
          ptr = strtok(NULL, delimiter);
          personen.geschlecht=ptr;
          ptr = strtok(NULL, delimiter);
          
          
          if (strcmp(personen.name,proband)==0)
{
 printf("juhu sie heißen %s\n Gefunden wurden Sie an der Position %i ",personen.name,i);
             }  // Funktioniert noch!
         
         
}
            
printf("juhu sie heißen %s\n  ",personen[0].name); //Funktioniert nicht mehr

.....


______________________________________________________

Das Problem ist, dass außerhalb der For-Schleife nicht mehr die richtigen Werte in den Structs gespeichert sind.
Es wird komischerweise die letzte Zeile der Datei in jedem Struct speichert.
Kann mir jemand sagen, wo der Fehler ist ?  [???]

Hier der Inhalt meiner Textdatei:

Annegret;23.08.1840;0;01.06.1930;w;
Dieter;12.03.1833;0;20.10.1898;m;
Lotte;03.11.1880;1;06.3.1922;w;
Hans;30.03.1875;1;18.04.1937;m;
Emma;21.03.1900;2; ;w;
Moritz;04.04.1903;2;06.05.1949;m;
Lena;02.07.1916;2; ;w;
Frieda;01.09.1930;3; ;w;
Horst;08.12.1934;3; ;m;
Bente;16.01.1945;4; ;w;
Nils;14.04.1965;4; ;m;
Chris;23.06.1966;4;23.06.1966;m;
Laura;29.07.1988;5; ;w;
Manuel;31.08.1990;5; ;m;
Janne;22.03.2010;6; ;w;
Maren;13.11.2015;6; ;w;

            

« Hilfe bezüglich structs speichern gesucht - !Achtung Anfänger!Ruby Tutorials »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Auslagerungsdatei
Die Auslagerungsdatei ist der virtuelle Speicher von Windows. Wenn der RAM-Speicher nicht ausreicht um mit den geöffneten Programmen weiter zu arbeiten, werden Daten...

Dateiendungen
Die Dateiendung, auch Dateierweiterung oder einfach "Endung" genannt, besteht aus meistens drei oder vier Buchstaben und wird mit einem Punkt an den Dateinamen angehä...

Dateisystem
Das Dateisystem ist eine Ablageorganisation auf einem Dateiträger eines Computers. Die Daten müssen gelesen, gespeichert oder gelöscht werden. Zudem legt d...