fread zuviel ausgeben



  • In meiner Datei stehen 4 Blöcke zu je eines char[15] arrays.

    FILE * Datei;
    Datei = fopen("Benuter.dat", "r");
    do{
      fread(&Puffer, sizeof(char[15]), 1, Datei);
      ShowMessage(Puffer);    
    }
    while(!feof(Datei));
    

    Es wird mir dann per ShowMessage alle Elemente ausgegeben. Das letze aber zweimal... WARUM ???



  • feof wird erst gesetzt, wenn 'hinter' letztem Byte gelesen wird! (bei mir bekannten C- Compilern)

    werte Rueckgabewert von fread(...) aus!!!

    liefert Anzahl gelesene Datensaetze.

    .
      .
      int gelesen;
      gelesen=fread(&Puffer, sizeof(char[15]), 1, Datei);
      while (gelesen==1)
      {
        ShowMessage(Puffer);    
        gelesen=fread(&Puffer, sizeof(char[15]), 1, Datei);
      }
      .
      .
    

Anmelden zum Antworten