Dateiende (EOF) in C

Muhammad Zeeshan 12 Oktober 2023
  1. End-of-File (EOF) in C
  2. Operationen mit einer Datei in C
  3. Beispiel für EOF in C
Dateiende (EOF) in C

Das Thema des Ausdrückens von EOF in C wird der Schwerpunkt dieses Artikels sein.

End-of-File (EOF) in C

Der als end-of-file bezeichnete Umstand tritt in einem Betriebssystem eines Computers auf, wenn keine Daten mehr von einer Datenquelle gelesen werden können. Die Datenquelle wird oft als Datei oder stream bezeichnet.

Die Eingabe ist abgeschlossen, wenn die Meldung End of the File (EOF) angezeigt wird.

Nach der Eingabe des Inhalts können wir den Text beenden, indem wir gleichzeitig die Tasten Ctrl und Z drücken. Dies signalisiert, dass die Datei ihren Abschluss erreicht hat und nichts mehr zu lesen ist.

Wenn das Ende der Datei in C erreicht ist, gibt die Funktion getc() EOF zurück. getc() gibt auch end-of-file (EOF) zurück, wenn es nicht erfolgreich ist.

Daher reicht es nicht aus, nur den von getc() gelieferten Wert mit EOF zu vergleichen, um festzustellen, ob die Datei ihr Ende erreicht hat oder nicht. C bietet die Funktion feof() an, um dieses Problem zu lösen.

Diese Funktion gibt nur dann einen Wert größer als Null zurück, wenn das Ende der Datei erreicht wurde; andernfalls wird 0 zurückgegeben.

Operationen mit einer Datei in C

Die meisten Programme werden entwickelt, um die Informationen zu speichern, die aus dem Programm abgerufen werden. Eine dieser Methoden besteht darin, die erhaltenen Informationen in einer Datei zu speichern.

Das Folgende ist eine Liste der verschiedenen Operationen, die an einer Datei ausgeführt werden können.

Erstellen Sie eine Datei

Mit dem Programm fopen und der Angabe von Merkmalen wie a, a+, w und w++ kann eine neue Datei erstellt werden.

Eine Datei öffnen

Beim Öffnen einer Datei werden die Funktion fopen und die entsprechenden Zugriffsmodi verwendet. Im Folgenden sind einige Dateizugriffsmodi aufgeführt, die am häufigsten verwendet werden.

  1. Durch Drücken von a wird die Datei gesucht. Wenn die Datei erfolgreich geöffnet wurde, lädt die Funktion fopen() sie in den Speicher und erstellt einen Zeiger, der auf das Zeichen verweist, das gerade daraus gelesen wird.

    Wenn die Datei noch nicht existiert, wird eine neue erstellt. Gibt Null zurück, wenn eine Datei nicht geöffnet werden kann.

  2. Der Buchstabe w durchsucht die Datei. Wenn die Datei bereits vorhanden ist, wird der Inhalt der Datei neu geschrieben.

    Wenn die Datei noch nicht existiert, wird eine neue erstellt. Kann die Datei nicht geöffnet werden, wird Null zurückgegeben.

Um die Aktivitäten auszuführen, die für die Datei ausgeführt werden müssen, wird ein spezialisierter Zeiger namens Dateizeiger verwendet, dessen Deklaration wie folgt aussieht:

FILE *fp;

Daher ist es möglich, die Datei zu öffnen mit:

fp = fopen("Shanii.txt", "w");

Hier ist Shanii.txt die Datei, die wir öffnen möchten, und der zweite Parameter ist der Dateimodus.

Lesen einer Datei

Die Funktionen fscanf und fgets werden verwendet, um die Leseoperationen auf den Dateien durchzuführen. Beide Methoden führten die gleichen Aktionen aus wie scanf und gets, berücksichtigten jedoch ein zusätzliches Argument namens Dateizeiger.

Sie haben die Wahl, die Datei zeichenweise oder zeilenweise zu lesen, je nachdem, wie Sie die Informationen organisieren möchten. Das Folgende ist ein Beispiel für den Code, der zum Lesen einer Datei erforderlich ist.

FILE* fp;
fp = fopen("shanii.txt", "r");
fscanf(fp, "%s %s %s %d", str1, str2, str3, &year);

Schreiben Sie eine Datei

Die Funktionen fprintf und fputs, die zum Lesen von Dateien verwendet werden, können auch zum Schreiben von Dateien verwendet werden, und der Vorgang ist dem Lesen von Dateien sehr ähnlich. Der Befehl zum Schreiben in eine Datei sieht folgendermaßen aus:

FILE *fp;
fp = fopen("shanii.txt", "w");
fprintf(fp, "%s %s %s %d", "I", "am", "Zeeshan", 2000);

Schließen einer Datei

Sie müssen eine Datei immer schließen, nachdem alle ihre Aktionen erfolgreich abgeschlossen wurden. Sie müssen die Funktion fclose verwenden, um eine Datei erfolgreich zu schließen.

Der Code zum Schließen einer Datei wird hier angezeigt:

FILE *fp;
fp = fopen("fileName.txt", "w");
fprintf(fp, "%s %s %s %d", "I", "am", "Zeeshan", 2000);
fclose(fp);

Beispiel für EOF in C

Sehen Sie sich zum Beispiel den folgenden C-Code an, um den Inhalt einer Textdatei namens shanii.txt auf dem Bildschirm anzuzeigen.

Der Wert von getc() wird zuerst mit EOF verglichen.

int charac = getc(filepointer);

while (charac != EOF) {
  putchar(charac);
  charac = getc(filepointer);
}

Dann erfolgt eine zweite Prüfung mit feof(). Diese Prüfung stellt sicher, dass das Programm nur dann Programm hat Dateiende erreicht ausgibt, wenn das Dateiende erreicht ist.

if (feof(filepointer)) {
  printf("\n Program has reached End-of-file");
}

Andernfalls zeigt das Programm There was a problem an.

Quellcode:

#include <stdio.h>

int main() {
  FILE *filepointer = fopen("shanii.txt", "r");
  int charac = getc(filepointer);

  while (charac != EOF) {
    putchar(charac);
    charac = getc(filepointer);
  }

  if (feof(filepointer)) {
    printf("\n Program has reached End-of-file");
  } else {
    printf("\n There was a problem");
  }
  fclose(filepointer);
  getchar();
  return 0;
}
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn