BESTE WEBSITE FÜR WEBENTWICKLER
C Sprache. W3Schools auf Deutsch. Unterricht für Anfänger

Ua En Es

C Dateien lesen


Eine Datei lesen

Im vorherigen Kapitel haben wir mit den Modi w und a innerhalb der fopen()-Funktion.

Zum Lesen (read) aus einer Datei können Sie den r-Modus verwenden:

Beispiel

FILE *fptr;

// Öffnen Sie eine Datei im Lesemodus
fptr = fopen("filename.txt", "r");

Dadurch wird die filename.txt zum Lesen geöffnet.

Es erfordert ein wenig Arbeit, eine Datei in C zu lesen. Bleiben Sie dran! Wir begleiten Sie Schritt für Schritt.

Als Nächstes müssen wir eine Zeichenfolge erstellen, die groß genug sein sollte, um den Inhalt der Datei zu speichern.

Lassen Sie uns beispielsweise eine Zeichenfolge erstellen, die bis zu 100 Zeichen speichern kann:

Beispiel

FILE *fptr;

// Öffnen Sie eine Datei im Lesemodus
fptr = fopen("filename.txt", "r");

// Speichern Sie den Inhalt der Datei
char myString[100];

Um den Inhalt zu lesen filename.txt, Wir können die Funktion fgets() verwenden.

Die Funktion fgets() benötigt drei Parameter:

Beispiel

fgets(myString, 100, fptr);
  1. Der erste Parameter gibt an, wo der Dateiinhalt gespeichert werden soll, der sich im soeben erstellten Array myString befindet.
  2. Der zweite Parameter gibt die maximale Größe der zu lesenden Daten an, die mit der Größe von übereinstimmen sollte myString (100).
  3. Der dritte Parameter erfordert einen Dateizeiger, der zum Lesen der Datei verwendet wird (in unserem Beispiel fptr).

Jetzt können wir die Zeichenfolge drucken, die den Inhalt der Datei ausgibt:

Beispiel

FILE *fptr;

// Öffnen Sie eine Datei im Lesemodus
fptr = fopen("filename.txt", "r");

// Speichern Sie den Inhalt der Datei
char myString[100];

// Lesen Sie den Inhalt und bewahren Sie ihn darin auf myString
fgets(myString, 100, fptr);

// Drucken Sie den Dateiinhalt aus
printf("%s", myString);

// Schließen Sie die Datei
fclose(fptr);

Hello World!

Beispiel ausführen »

Notiz: Die Funktion fgets liest nur die erste Zeile der Datei. Wenn Sie sich erinnern, waren darin zwei Textzeilen filename.txt.

Um jede Zeile der Datei zu lesen, können Sie eine while-Schleife verwenden:

Beispiel

FILE *fptr;

// Öffnen Sie eine Datei im Lesemodus
fptr = fopen("filename.txt", "r");

// Speichern Sie den Inhalt der Datei
char myString[100];

// Lesen Sie den Inhalt und drucken Sie ihn aus
while(fgets(myString, 100, fptr)) {
  printf("%s", myString);
}

// Schließen Sie die Datei
fclose(fptr);

Hello World!
Hi everybody!

Beispiel ausführen »

Gute Übung

Wenn Sie versuchen, eine Datei zum Lesen zu öffnen, die nicht existiert, wird die Funktion fopen() zurückgegeben NULL.

Tipp: Als bewährte Vorgehensweise können wir zum Testen eine if-Anweisung verwenden NULL, und stattdessen etwas Text ausgeben (wenn die Datei nicht existiert):

Beispiel

FILE *fptr;

// Öffnen Sie eine Datei im Lesemodus
fptr = fopen("loremipsum.txt", "r");

// Geben Sie Text aus, wenn die Datei nicht vorhanden ist
if(fptr == NULL) {
  printf("Die Datei kann nicht geöffnet werden.");
}

// Schließen Sie die Datei
fclose(fptr);

Wenn die Datei nicht vorhanden ist, wird der folgende Text gedruckt:

Not able to open the file.

Beispiel ausführen »

Vor diesem Hintergrund können wir einen nachhaltigeren Code erstellen, wenn wir unser obiges Beispiel „Eine Datei lesen“ noch einmal verwenden:

Beispiel

Wenn die Datei vorhanden ist, lesen Sie den Inhalt und drucken Sie ihn aus. Wenn die Datei nicht vorhanden ist, drucken Sie eine Meldung aus:

FILE *fptr;

// Öffnen Sie eine Datei im Lesemodus
fptr = fopen("filename.txt", "r");

// Speichern Sie den Inhalt der Datei
char myString[100];

// Wenn die Datei vorhanden ist
if(fptr != NULL) {

 // Lesen Sie den Inhalt und drucken Sie ihn aus
  while(fgets(myString, 100, fptr)) {
    printf("%s", myString);
  }

// Wenn die Datei nicht existiert
} else {
  printf("Die Datei kann nicht geöffnet werden.");
}

// Schließen Sie die Datei
fclose(fptr);

Hello World!
Hi everybody!

Beispiel ausführen »