Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C Dateien I/O:Erstellen, Öffnen, Lesen, Schreiben und Schließen einer Datei

C Dateiverwaltung

Eine Datei kann verwendet werden, um eine große Menge persistenter Daten zu speichern. Wie viele andere Sprachen bietet „C“ folgende Dateiverwaltungsfunktionen,

  1. Erstellen einer Datei
  2. Öffnen einer Datei
  3. Eine Datei lesen
  4. In eine Datei schreiben
  5. Schließen einer Datei

Im Folgenden sind die wichtigsten Dateiverwaltungsfunktionen aufgeführt, die in „C“

verfügbar sind Funktion Zweck föffnen () Erstellen einer Datei oder Öffnen einer vorhandenen Dateifclose () Schließen einer Datei fprintf () Schreiben eines Datenblocks in eine Datei fscanf () Lesen von Blockdaten aus einer Dateigetc() Liest ein einzelnes Zeichen aus einer Dateiputc() Schreibt ein einzelnes Zeichen in eine Datei getw () Liest eine Ganzzahl aus einer Dateiputw() Schreiben einer Ganzzahl in eine Datei fseek () Setzt die Position eines Dateizeigers auf einen angegebenen Ortftell () Gibt die aktuelle Position eines Dateizeigersrewind() zurück Setzt den Dateizeiger an den Anfang einer Datei


In diesem Tutorial lernen Sie-

So erstellen Sie eine Datei

Wenn Sie mit einer Datei arbeiten möchten, müssen Sie zunächst eine Datei erstellen. Eine Datei ist nichts anderes als Speicherplatz in einem Speicher, in dem Daten gespeichert werden.

Um eine Datei in einem „C“-Programm zu erstellen, wird die folgende Syntax verwendet:

FILE *fp;
fp = fopen ("file_name", "mode");

In der obigen Syntax ist die Datei eine Datenstruktur, die in der Standardbibliothek definiert ist.

fopen ist eine Standardfunktion, die zum Öffnen einer Datei verwendet wird.

fp ist ein Dateizeiger, der auf den Typ file.

zeigt

Immer wenn Sie eine Datei öffnen oder erstellen, müssen Sie angeben, was Sie mit der Datei machen wollen. Eine Datei in C-Programmierung kann zum Lesen/Schreiben erstellt oder geöffnet werden. Ein Modus wird verwendet, um anzugeben, ob Sie eine Datei für einen der unten angegebenen Zwecke öffnen möchten. Im Folgenden sind die verschiedenen Arten von Modi in der C-Programmierung aufgeführt, die beim Arbeiten mit einer Datei verwendet werden können.

Dateimodus Beschreibung rÖffnen Sie eine Datei zum Lesen. Befindet sich eine Datei im Lesemodus, werden keine Daten gelöscht, wenn eine Datei bereits auf einem System vorhanden ist.wDatei zum Schreiben öffnen. Wenn sich eine Datei im Schreibmodus befindet, wird eine neue Datei erstellt, wenn eine Datei gar nicht existiert. Wenn eine Datei bereits auf einem System vorhanden ist, werden alle Daten in der Datei abgeschnitten und zu Schreibzwecken geöffnet.a Öffnen Sie eine Datei im
Anfügemodus. Wenn sich eine Datei im Anhängemodus befindet, wird die Datei geöffnet. Der Inhalt der Datei ändert sich nicht.r+ zum Lesen und Schreiben von Anfang an öffnenw+zum Lesen und Schreiben öffnen, eine Datei überschreibena+zum Lesen und Schreiben öffnen, an eine Datei anhängen

In der gegebenen Syntax werden der Dateiname und der Modus als Strings angegeben und müssen daher immer in doppelte Anführungszeichen gesetzt werden.

Beispiel:

#include <stdio.h>
int main() {
FILE *fp;
fp  = fopen ("data.txt", "w");
}

Ausgabe:

Die Datei wird in demselben Ordner erstellt, in dem Sie Ihren Code gespeichert haben.

Sie können den Pfad angeben, in dem Sie Ihre Datei erstellen möchten

#include <stdio.h>
int main() {
FILE *fp;
fp  = fopen ("D://data.txt", "w");
}

So schließen Sie eine Datei

Man sollte eine Akte immer dann schließen, wenn die Operationen an der Akte beendet sind. Dies bedeutet, dass die Inhalte und Links zu der Datei beendet werden. Dies verhindert eine versehentliche Beschädigung der Datei.

‚C‘ stellt die fclose-Funktion bereit, um eine Dateischließoperation durchzuführen. Die Syntax von fclose lautet wie folgt:

fclose (file_pointer);

Beispiel:

FILE *fp;
fp  = fopen ("data.txt", "r");
fclose (fp);

Die fclose-Funktion nimmt einen Dateizeiger als Argument. Die mit dem Dateizeiger verknüpfte Datei wird dann mit Hilfe der Funktion fclose geschlossen. Es gibt 0 zurück, wenn das Schließen erfolgreich war, und EOF (Ende der Datei), wenn beim Schließen der Datei ein Fehler aufgetreten ist.

Nach dem Schließen der Datei kann derselbe Dateizeiger auch mit anderen Dateien verwendet werden.

Bei der C-Programmierung werden Dateien automatisch geschlossen, wenn das Programm beendet wird. Das manuelle Schließen einer Datei durch Schreiben der fclose-Funktion ist eine gute Programmierpraxis.

In eine Datei schreiben

Wenn Sie in C in eine Datei schreiben, müssen Zeilenumbruchzeichen ‚\n‘ explizit hinzugefügt werden.

Die stdio-Bibliothek bietet die notwendigen Funktionen, um in eine Datei zu schreiben:

Das folgende Programm zeigt, wie man in eine Datei schreibt:

fputc()-Funktion:

#include <stdio.h>
int main() {
        int i;
        FILE * fptr;
        char fn[50];
        char str[] = "Guru99 Rocks\n";
        fptr = fopen("fputc_test.txt", "w"); // "w" defines "writing mode"
        for (i = 0; str[i] != '\n'; i++) {
            /* write to file using fputc() function */
            fputc(str[i], fptr);
        }
        fclose(fptr);
        return 0;
    }

Ausgabe:

Das obige Programm schreibt ein einzelnes Zeichen in die fputc_test.txt bis zum nächsten Zeilensymbol „\n“, das anzeigt, dass der Satz erfolgreich geschrieben wurde. Der Prozess besteht darin, jedes Zeichen des Arrays zu nehmen und es in die Datei zu schreiben.

  1. Im obigen Programm haben wir eine Datei namens fputc_test.txt in einem Schreibmodus erstellt und geöffnet und deklarieren unseren String, der in die Datei geschrieben wird.
  2. Wir führen eine zeichenweise Schreiboperation mit einer for-Schleife durch und fügen jedes Zeichen in unsere Datei ein, bis das Zeichen „\n“ gefunden wird, dann wird die Datei mit der Funktion fclose geschlossen.

fputs () Funktion:

#include <stdio.h>
int main() {
        FILE * fp;
        fp = fopen("fputs_test.txt", "w+");
        fputs("This is Guru99 Tutorial on fputs,", fp);
        fputs("We don't need to use for loop\n", fp);
        fputs("Easier than fputc function\n", fp);
        fclose(fp);
        return (0);
    }

AUSGABE:

  1. Im obigen Programm haben wir eine Datei namens fputs_test.txt im Schreibmodus erstellt und geöffnet.
  2. Nachdem wir eine Schreiboperation mit der Funktion fputs() durchgeführt haben, indem wir drei verschiedene Strings geschrieben haben
  3. Dann wird die Datei mit der Funktion fclose geschlossen.

fprintf()-Funktion:

#include <stdio.h>
    int main() {
        FILE *fptr;
        fptr = fopen("fprintf_test.txt", "w"); // "w" defines "writing mode"
        /* write to file */
        fprintf(fptr, "Learning C with Guru99\n");
        fclose(fptr);
        return 0;
    }

AUSGABE:

  1. Im obigen Programm haben wir eine Datei namens fprintf_test.txt erstellt und im Schreibmodus geöffnet.
  2. Nachdem eine Schreiboperation mit der Funktion fprintf() durch Schreiben einer Zeichenkette durchgeführt wurde, wird die Datei mit der Funktion fclose geschlossen.

Daten aus einer Datei lesen

Es gibt drei verschiedene Funktionen zum Lesen von Daten aus einer Datei

Das folgende Programm demonstriert das Lesen aus der Datei fputs_test.txt mit den Funktionen fgets(), fscanf() bzw. fgetc():

#include <stdio.h>
int main() {
        FILE * file_pointer;
        char buffer[30], c;

        file_pointer = fopen("fprintf_test.txt", "r");
        printf("----read a line----\n");
        fgets(buffer, 50, file_pointer);
        printf("%s\n", buffer);

        printf("----read and parse data----\n");
        file_pointer = fopen("fprintf_test.txt", "r"); //reset the pointer
        char str1[10], str2[2], str3[20], str4[2];
        fscanf(file_pointer, "%s %s %s %s", str1, str2, str3, str4);
        printf("Read String1 |%s|\n", str1);
        printf("Read String2 |%s|\n", str2);
        printf("Read String3 |%s|\n", str3);
        printf("Read String4 |%s|\n", str4);

        printf("----read the entire file----\n");

        file_pointer = fopen("fprintf_test.txt", "r"); //reset the pointer
        while ((c = getc(file_pointer)) != EOF) printf("%c", c);

        fclose(file_pointer);
        return 0;
    }

Ergebnis:

----read a line----
Learning C with Guru99

----read and parse data----
Read String1 |Learning|
Read String2 |C|
Read String3 |with|
Read String4 |Guru99|
----read the entire file----
Learning C with Guru99

  1. Im obigen Programm haben wir die Datei namens „fprintf_test.txt“ geöffnet, die zuvor mit der Funktion fprintf() geschrieben wurde und die Zeichenfolge „Learning C with Guru99“ enthält. Wir lesen es mit der Funktion fgets(), die Zeile für Zeile liest, wobei die Puffergröße ausreichen muss, um die gesamte Zeile zu verarbeiten.
  2. Wir öffnen die Datei erneut, um die Zeigerdatei so zurückzusetzen, dass sie auf den Anfang der Datei zeigt. Erstellen Sie verschiedene String-Variablen, um jedes Wort separat zu behandeln. Drucken Sie die Variablen, um ihren Inhalt zu sehen. fscanf() wird hauptsächlich verwendet, um Daten aus einer Datei zu extrahieren und zu parsen.
  3. Öffnen Sie die Datei erneut, um die Zeigerdatei so zurückzusetzen, dass sie auf den Anfang der Datei zeigt. Daten lesen und Zeichen für Zeichen mit der Funktion getc() aus der Datei drucken, bis die EOF-Anweisung gefunden wird
  4. Nachdem wir eine Datei mit verschiedenen Varianten gelesen haben, haben wir die Datei wieder mit der Funktion fclose geschlossen.

Interaktives Lesen und Schreiben von Dateien mit getc und putc

Dies sind die einfachsten Dateioperationen. Getc steht für Get-Zeichen und Putc steht für Put-Zeichen. Diese beiden Funktionen werden verwendet, um jeweils nur ein einzelnes Zeichen zu verarbeiten.

Das folgende Programm demonstriert die Dateihandhabungsfunktionen in der ‚C‘-Programmierung:

#include <stdio.h>
int main() {
        FILE * fp;
        char c;
        printf("File Handling\n");
        //open a file
        fp = fopen("demo.txt", "w");
        //writing operation
        while ((c = getchar()) != EOF) {
            putc(c, fp);
        }
        //close file
        fclose(fp);
        printf("Data Entered:\n");
        //reading
        fp = fopen("demo.txt", "r");
        while ((c = getc(fp)) != EOF) {
            printf("%c", c);
        }
        fclose(fp);
        return 0;
    }

Ausgabe:

  1. Im obigen Programm haben wir eine Datei namens Demo erstellt und in einem Schreibmodus geöffnet.
  2. Nachdem ein Schreibvorgang durchgeführt wurde, wird die Datei mit der Funktion fclose geschlossen.
  3. Wir haben erneut eine Datei geöffnet, die nun Daten im Lesemodus enthält. Eine While-Schleife wird ausgeführt, bis das eof gefunden wird. Sobald das Dateiende gefunden ist, wird die Operation beendet und die Daten werden mit der printf-Funktion angezeigt.
  4. Nach einem Lesevorgang wird die Datei wieder mit der Funktion fclose geschlossen.

Zusammenfassung


C Sprache

  1. C#-Variablen und (primitive) Datentypen
  2. C Eingang Ausgang (E/A)
  3. C Dateiverwaltung
  4. Python-Datei-I/O
  5. Apacer:CV110-SD- und CV110-MSD-Karten weltweit eingeführt
  6. Apacer:SV250 SSD-Serie in Industriequalität mit Lese-/Schreibgeschwindigkeiten von 560 und 520 MB/s
  7. acceed:I/O-Module für skalierbare Datenkommunikation
  8. Raspberry PI I/O Breakout-Kabel und Plugboard-Adapter
  9. C - Datei-E/A
  10. C - Header-Dateien