In diesem Handbuch erfahren Sie, wie Sie Eingabe- / Ausgabevorgänge (E / A) für eine Datei mit der Programmiersprache C ausführen.
C-Datei-E / A – Inhaltsverzeichnis
1. Öffnen einer Datei
2. Lesen einer Datei
3. Schreiben einer Datei
4. Schließen einer Datei
5. Lesen und Schreiben von Zeichenfolgen in eine Datei
6. Lesen und Schreiben von Binärdateien in C
Bevor wir jede Operation im Detail besprechen, nehmen wir ein einfaches C-Programm:
Ein einfaches C-Programm zum Öffnen, Lesen und Schließen der Datei
Im obigen Programm öffnen wir eine Datei newfile.txt
im Modus r
, lesen den Inhalt der Datei und zeigen sie an es auf der Konsole. Lassen Sie uns die einzelnen Vorgänge im Detail verstehen:
Öffnen einer Datei
fopen()
wird zum Öffnen einer Datei verwendet.
Syntax:
FILE pointer_name = fopen ("file_name", "Mode");
pointer_name
kann alles von Ihnen sein Auswahl.
file_name
ist der Name der Datei, die Sie öffnen möchten. Geben Sie hier den vollständigen Pfad wie „C: \\ myfiles \\ newfile.txt“ an.
Beim Öffnen einer Datei müssen Sie den Modus angeben. Der Modus, den wir zum Lesen einer Datei verwenden, ist „r“ „Dies ist“ schreibgeschützter Modus „.
Beispiel:
FILE *fp;fp = fopen("C:\\myfiles\\newfile.txt", "r");
Die Adresse des ersten Zeichens wird in .
So überprüfen Sie, ob die Datei erfolgreich geöffnet wurde?
Wenn die Datei nicht erfolgreich geöffnet wird, wird dem Zeiger ein NULL-Wert zugewiesen, sodass Sie die Logik wie folgt schreiben können :
Dieser Code prüft, ob die Datei erfolgreich geöffnet wurde oder nicht. Wenn die Datei nicht geöffnet wird, wird dem Benutzer eine Fehlermeldung angezeigt.
..FILE fpr;fpr = fopen("C:\\myfiles\\newfile.txt", "r");if (fpr == NULL){ puts("Error while opening file"); exit();}
Verschiedene Modi zum Öffnen von Dateien:
Die Datei wird mit der Funktion fopen()
geöffnet. Beim Öffnen können Sie je nach Anforderung einen der folgenden Modi verwenden.
Modus „r“: Dies ist ein schreibgeschützter Modus. Wenn die Datei im r-Modus geöffnet wird, können Sie keine Inhalte schreiben und ändern. Wenn fopen()
eine Datei erfolgreich öffnet, wird die Adresse des ersten Zeichens der Datei zurückgegeben, andernfalls wird NULL zurückgegeben.
Modus „w“: Es handelt sich um einen Schreibvorgang Nur Modus. Die Funktion fopen()
erstellt eine neue Datei, wenn die angegebene Datei nicht vorhanden ist. Wenn die Datei nicht geöffnet werden kann, wird NULL zurückgegeben.
Modus “ a ”: In diesem Modus kann der Inhalt am Ende einer vorhandenen Datei angehängt werden. Wie im Modus „w“ erstellt fopen()
eine neue Datei, wenn diese nicht vorhanden ist. Beim erfolglosen Öffnen wird NULL zurückgegeben.
Der Dateizeiger zeigt auf: letztes Zeichen der Datei
Modus „r +“: Dieser Modus entspricht dem Modus „r“. Sie können jedoch verschiedene Vorgänge für die in diesem Modus geöffnete Datei ausführen. Sie dürfen den Inhalt der Datei lesen, schreiben und ändern Wird im Modus „r +“ geöffnet.
Der Dateizeiger zeigt auf: Erstes Zeichen der Datei.
Modus „w +“: Entspricht dem Modus „w“, abgesehen von Operationen, die ausgeführt werden können. Die Datei kann in diesem Modus gelesen, geschrieben und geändert werden.
Modus „a +“: Wie Modus „a“; Sie können die Daten in der Datei lesen und anhängen. In diesem Modus ist jedoch keine Änderung des Inhalts zulässig.
Lesen einer Datei
Um die Datei zu lesen, müssen Sie sie zuerst mit einer beliebigen Datei öffnen Wenn Sie beispielsweise die Datei nur lesen möchten, öffnen Sie sie im „r“ -Modus. Basierend auf dem beim Öffnen der Datei ausgewählten Modus können wir bestimmte Vorgänge für die Datei ausführen.
C Programm zum Lesen einer Datei
fgetc (): Diese Funktion liest das Zeichen von der Position des aktuellen Zeigers und bewegt den Zeiger nach erfolgreichem Lesen zum nächsten Zeichen in der Datei. Sobald der Zeiger das Ende der Datei erreicht hat Diese Funktion gibt EOF (End of File) zurück. Wir haben EOF in unserem Programm verwendet, um das Ende der Datei zu bestimmen.
Schreiben in eine Datei
Um die Datei zu schreiben, haben wir muss die Datei in einem Modus öffnen, der das Schreiben unterstützt. Wenn Sie beispielsweise eine Datei im „r“ -Modus öffnen, können Sie die Datei nicht schreiben, da „r“ ein schreibgeschützter Modus ist, der nur das Lesen zulässt.
Beispiel: C Programm zum Schreiben die Datei
Dieses Programm fordert den Benutzer auf, ein Zeichen einzugeben, und schreibt dieses Zeichen am Ende der Datei. Wenn die Datei nicht vorhanden ist, erstellt dieses Programm eine Datei mit dem angegebenen Namen und schreibt das Eingabezeichen in die Datei.
Schließen einer Datei
fclose(fp);
Die Funktion fclose () wird zum Schließen einer geöffneten Datei verwendet. Als Argument müssen Sie einen Zeiger auf die Datei angeben, die Sie schließen möchten.
Ein Beispiel zum Anzeigen der Operation Öffnen, Lesen, Schreiben und Schließen in C
Lesen / Schreiben (E / A) Zeichenfolgen in Dateien – fgets & fputs
Hier wird erläutert, wie Zeichenfolgen in eine Datei gelesen und geschrieben werden.
char *fgets(char *s, int rec_len, FILE *fpr)
s: Array von Zeichen zum Speichern von Zeichenfolgen.
rec_len: Länge des Eingabedatensatzes.
fpr: Zeiger auf die Eingabedatei.
Nehmen wir ein Beispiel:
Beispiel zum Lesen der Zeichenfolgen aus einer Datei in der C-Programmierung
Im obigen Beispiel haben wir die Funktion fgets wie folgt verwendet:
fgets(str, 10, fpr)
Hier steht str für die Zeichenfolge (Array von Zeichen), in der Sie die Zeichenfolge nach dem Lesen aus der Datei speichern.
10 ist die Länge der Zeichenfolge, die benötigt wird jedes Mal gelesen werden.
fpr ist ein Zeiger auf eine Datei, die gelesen werden soll.
Warum ich if (fgets (str, 10, fpr) == NULL als Logik zur Bestimmung des Endes verwendet habe der Datei?
In den obigen Beispielen haben wir ch == EOF verwendet, um das Ende der Datei kennenzulernen. Hier haben wir diese Logik verwendet, da fgets NULL zurückgibt, wenn keine weiteren Datensätze zum Lesen verfügbar sind .
C-Programm – Schreiben einer Zeichenfolge in eine Datei
int fputs ( const char * s, FILE * fpw );
char *s
– Array von char.
FILE *fpw
– Zeiger (vom Typ FILE) auf die Datei, die geschrieben werden soll.
fputs benötigt zwei Argumente –
fputs(str, fpw)
str – str stellt das Array dar, in dem die Zeichenfolge gespeichert ist.
fpw – DATEI Zeiger auf die Ausgabedatei, in die der Datensatz geschrieben werden muss.
Hinweis zu fputs:
Bei Eingaben wird standardmäßig nach dem Schreiben jedes Datensatzes keine neue Zeile hinzugefügt, um dies manuell zu tun. Nach jedem Schreiben in die Datei können Sie die folgende Anweisung verwenden.
fputs("\n", fpw);
C-DATEI-E / A für Binärdateien
Bisher haben wir Dateioperationen für Textdateien gelernt. Was ist, wenn die Dateien binär sind (z. B. EXE-Datei)? Die oben genannten Programme funktionieren nicht für Binärdateien, es gibt jedoch eine geringfügige Änderung bei der Behandlung von Binärdateien. Der Hauptunterschied ist der Dateiname &. Lassen Sie uns dies anhand eines Beispiels verstehen. Nehmen wir an, ich habe zwei Binärdateien bin1.exe & bin2.exe – Ich möchte den Inhalt von bin1.exe nach bin2.exe kopieren:
Beispiel: Lesen und Schreiben von Binärdateien in C
Hinweis: Die Modi zum Öffnen von Dateien sind „rb“ und „wb“ anstelle von „r“. & „w“.