C Kleine Frage zu fopen und fgets mit Textdatei

ElektroBayern

Newbie
Registriert
Jan. 2020
Beiträge
2
Hallo liebes Forum,

ich eigne mir gerade die Grundkenntnisse der Programmiersprache C an. Dazu habe ich ein kurzes Programm geschrieben, dass mir die Zeichenkette aus meiner Datei "Bestellung.txt" einliest. In dieser Textdatei habe ich den folgenden Satz gespeichert "Ich gehe gerne zur Fachhochschule.". Leider wird mir jetzt auf der Ausgabekonsole unendlich oft der Satz "Ich gehe gerne zur Fachhochschule." ausgegeben - in jeder Zeile steht dieser Satz einmal und das Programm wiederholt sich unendlich oft bis ich es beende.

Was muss ich tun, damit dieser Satz nur einmal eingelesen wird und nur einmal auf der Ausgabekonsole erscheint?

Hier mein Quellcode:

C:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *infile;
    infile = fopen("c:\\temp\\Bestellung.txt", "r");
    char zeichenkette[100];
    while(fgets(zeichenkette, 100, infile)!=EOF)
    {
        fprintf(stdout, "%s", zeichenkette);
    }
    fclose(infile);
    return 0;
}

Herzlichen Dank für eure Hilfe!

Gruß
ElektroBayern
 
fgets() gibt nie EOF zurück, fgetc() tut das, und feof() tut das auch.

fgets() gibt NULL zurück bei Dateiende, oder wenn ein Fehler auftrat. Benutze dann feof() und ferror() um dieses weiter zu bearbeiten, wenn erwünscht.
 
  • Gefällt mir
Reaktionen: ElektroBayern
Zurück
Oben