title: C fscanf and pointer
body: <p>After trying to read/write binaries failed miserably I tried to do the same thing with fscanf and fprintf and it seemed to work fine, but again .. reading doesn't work at all and once again I can't really tell why:</p>
  
  <p>struct + pointer:</p>
  
  <pre><code>typedef struct flug
  {
      int         flugnummer;
      char        flugziel[50];
      enum TAG    flugtag;
      int         flugzeit_stunde;
      int         flugzeit_minute;
      int         gateway;
      char        status[10];
      struct flug *next;
  }FLUG;
  
  typedef FLUG *ELEM_ZGR;
  </code></pre>
  
  <p>global variables:</p>
  
  <pre><code>enum TAG {
  Sonntag,
  Montag,
  Dienstag,
  Mittwoch,
  Donnerstag,
  Freitag,
  Samstag
  };
  
  static ELEM_ZGR first;
  char const datei[] = "ddslist.txt";
  </code></pre>
  
  <p>write:</p>
  
  <pre><code>int fluege_sichern() {
  ELEM_ZGR curr;
  FILE *fp;
  
  curr = first;
  
      if (fopen_s(&amp;fp, datei,"a+") != 0)
      {
          printf("\nDatei %s nicht zum Anhaengen zu oeffnen",datei);
          PAUSE;
          exit(1);
      }
  
      while (curr != NULL) {
          fprintf(fp,"%d %s %d %d %d ",
              curr-&gt;flugnummer, curr-&gt;flugziel, curr-&gt;flugzeit_stunde, curr-&gt;flugzeit_minute, curr-&gt;gateway);
          fclose(fp);
  
          curr = curr-&gt;next;
      }
  
  }
  </code></pre>
  
  <p>read:</p>
  
  <pre><code>void fluege_laden() {
  ELEM_ZGR curr;
  FILE *fp;
  
  int i = 0;
  curr = NULL;
  
      if (fopen_s(&amp;fp, datei,"r") != 0)
      {
          printf("\nDatei %s nicht zum Lesen zu oeffnen",datei);
          PAUSE;
          exit(1);
      }
  
      printf("\n\nArtikelliste\nArtikelnummer  Artikelbezeichnung  Artikelpreis");
  
      while (fscanf_s(fp,"%d %s %d %d %d ",
              &amp;curr-&gt;flugnummer, curr-&gt;flugziel, &amp;curr-&gt;flugzeit_stunde, &amp;curr-&gt;flugzeit_minute, &amp;curr-&gt;gateway) != EOF)
      {
             printf("\n%d %s %d %d %d ",
              curr-&gt;flugnummer, curr-&gt;flugziel, curr-&gt;flugzeit_stunde, curr-&gt;flugzeit_minute, curr-&gt;gateway);
             if (++i%10==0)
                 PAUSE;
      }
  
      fclose(fp);
  }
  </code></pre>
  
  <p>Please help me out here. Even a little hint would be a huge help.
  [EDIT1]</p>
  
  <pre><code>void fluege_laden() {
  ELEM_ZGR curr;
  FILE *fp;
  
  int i = 0;
  curr = (ELEM_ZGR)malloc(sizeof(struct flug));
  
      if (fopen_s(&amp;fp, datei,"r") != 0)
      {
          printf("\nDatei %s nicht zum Lesen zu oeffnen",datei);
          PAUSE;
          exit(1);
      }
  
      printf("\n\nArtikelliste\nArtikelnummer  Artikelbezeichnung  Artikelpreis");
  
      while (fscanf_s(fp,"%d %s %d %d %d ",
              &amp;curr-&gt;flugnummer, curr-&gt;flugziel, &amp;curr-&gt;flugzeit_stunde, &amp;curr-&gt;flugzeit_minute, &amp;curr-&gt;gateway) != EOF)
      {
             printf("\n%d %s %d %d %d ",
              curr-&gt;flugnummer, curr-&gt;flugziel, curr-&gt;flugzeit_stunde, curr-&gt;flugzeit_minute, curr-&gt;gateway);
             if (++i%10==0)
                 PAUSE;
      }
  
      fclose(fp);
  }
  </code></pre>