Grundlagen der Sequential File Access in C-Programmierung

Der einfachste Weg, die C Programmierinformationen in einer Datei gespeichert wird, der Reihe nach,

Menu

ein Byte nach dem anderen. Die Datei enthält einen langen Strom von Daten.

Der Dateizugriff in C ist einfach eine andere Form von I / O. Anstatt auf das Display gehen, geht der Eingang oder Ausgang in eine Datei. Eine Datei wird geöffnet, indem die fopen () Funktion:

handle = fopen (filename, mode) -

Die Funktion fopen () benötigt zwei Argumente, beide Saiten. Die erste ist eine Dateiname- das zweite ist ein Modus. Die fopen () Funktion liefert eine Datei Griff, Das ist ein Zeiger verwendet, um die Datei zu verweisen. Dieser Zeiger ist ein Dateityp der Variablen.

ModusDatei öffnen fürDatei erstellen?Notizen
"ein"AnfügenjaEs fügt an das Ende einer vorhandenen File- einer Datei erstellt wird, wenn itdoesn't existieren.
"A +"Anfügen und LesenjaInformation wird an das Ende der Datei hinzugefügt.
"R"LesenNeinWenn die Datei nicht existiert, fopen () gibt einen Fehler zurück.
"R +"Lesen und SchreibenNeinWenn die Datei nicht existiert, wird ein Fehler zurückgegeben.
"W"SchreibenjaDie vorhandene Datei überschrieben wird, wenn der gleiche Name verwendet wird.
"W +"Das Schreiben und LesenjaDie vorhandene Datei wird überschrieben.

Das Modus ist ein String. Selbst wenn nur ein Zeichen angegeben ist, muss er in doppelte Anführungszeichen gesetzt werden.

Nachdem die Datei geöffnet ist, können Sie die Griff Variable, die die Datei zu verweisen, wie Sie lesen und schreiben. Die Datei-I / O-Funktionen sind ähnlich wie ihre Standard-I / O-Pendants, aber mit einem f-Präfix. Zum Schreiben in eine Datei, können Sie die fprintf (), fputs (), fputchar () und ähnlichen Funktionen verwendet werden. Das Lesen aus einer Datei verwendet die fscanf (), fgets () und ähnliche Funktionen.

Sie schließen die Datei mit der fclose () Funktion mit dem Datei-Handle als Argument verwendet wird.

Wie Text in eine Datei zu schreiben

Schreiben, die Datei, um die grundlegenden Prozess zeigt eine neue Datei zu erstellen, das Schreiben von Text in diese Datei, und dann den Dateizugriff zu schließen.

Schreiben, dass FILE

# include # include int main () {FILE * fh-fh = fopen ( "hello.txt", "w") - if (fh == null) {puts ( "Kann die Datei nicht öffnen!") - Ausfahrt (1) -} fprintf (fh, "Schau mal, was ich gemacht! n") - fclose (fh) -return (0) -}

Line 6 erstellt die Datei-Handle, fh. Es ist ein Zeiger. Der Zeiger speichert das Ergebnis der Funktion fopen () von der Linie 8. Die Datei hello.txt erstellt wird, um die "w" (schreiben) Modus. Wenn die Datei vorhanden ist, dann ist es überschrieben.

Die if-Anweisung überprüft, um zu bestätigen, dass die Datei ordnungsgemäß geöffnet wurde. Wenn es nicht war, ist der Wert von fh NULL und entsprechende Maßnahmen ergriffen werden.

Die fprintf () Funktion schreibt Text in die Datei auf Leitung 14 das Format das gleiche wie für printf () ist, obwohl die Datei-Handle muss als Argument einbezogen werden.

Schließlich schließt 15 Linie die Datei mit der fclose () Funktion. Diese Aussage ist ein erforderlicher Schritt für jeden Dateizugriff Programmierung.

Übung 1: Kopieren Sie den Quelltext schreiben, die Datei in einem Editor. Erstellen und das Programm auszuführen.

Die Ausgabe des Programms geht in eine Datei, so dass Sie nicht sehen, nichts angezeigt, wenn es ausgeführt wird. Verwenden Sie Ihre Datei-Browser des Computers die Datei zu suchen und öffnen. Oder Sie können ein Programm schreiben, das den Text aus der gleichen Datei liest.

Text aus einer Datei zu lesen

Die Standard-C-Text-Lesefunktionen werden verwendet, um Text aus einer Datei zu lesen, wie sie Text von der Tastatur lesen. Text ein Zeichen in einer Zeit zum Lesen, verwenden Sie die fgetc () Funktion.

LESEN SIE DIESE DATEI

# include # include int main () {FILE * fh-int ch-fh = fopen ( "hello.txt", "r") - if (fh == null) {puts ( "Kann nicht die Datei zu öffnen!" ) -exit (1) -} while ((ch = fgetc (fh)) = EOF) putchar (ch) -fclose (fh) -return (0) -}

Linie 9 in lesen, die Datei öffnet die Datei hello.txt nur zum Lesen. Die Datei muss vorhanden sein oder aber ein Fehler auftritt.

Die while-Schleife in Zeile 15 zeigt den Inhalt der Datei um ein Zeichen zu einem Zeitpunkt. Die fgetc () Funktion liest ein Zeichen aus der Datei durch den Griff fh identifiziert. Das Zeichen wird in Variable ch gespeichert. Das Ergebnis wird mit dem Ende der Datei konstant verglichen. Wenn eine Übereinstimmung vorliegt, wurde die Datei vollständig gelesen und die while-Schleife stoppt. Andernfalls wird das Zeichen, das gelesen hat, auf der Linie 16 angezeigt.

Übung 2: Erstellen Sie ein neues Programm, indem Sie den Quellcode mit dieser Datei im Read gezeigt. Erstellen und ausführen.

Das Programm zeigt den Inhalt der Datei durch Übung erstellt 1- andernfalls die Fehlermeldung zu sehen.

Übung 3: Ändern Sie den Quellcode von Übung 1 eine zweite Zeichenfolge in die Datei zu schreiben. Fügen Sie die folgende Anweisung nach Zeile 14:

fputs ( "My C-Programm geschrieben hat diese Datei. n", fh) -

Anders als mit den puts () Anweisung, benötigen Sie ein Newline-Zeichen für fputs angeben () ausgegeben. Des Weiteren wird das Datei-Handle-Argument nach der Zeichenfolge, die für eine C-Sprachdatei Funktion ungewöhnlich ist.

Die beiden Datei-Schreibfunktionen fprintf () und fputs () Schreiben von Text in der Datei nacheinander, um ein Zeichen nach dem anderen. Der Prozess funktioniert genauso wie Text auf dem Bildschirm zu schreiben, sondern diese Zeichen werden in einer Datei im permanenten Speicher gespeichert.

Die fgets () Funktion liest eine ganze Reihe von Text aus einer Datei. Damit es funktioniert, müssen Sie einen Eingangspuffer, die Anzahl der Zeichen zu lesen, und die Datei-Handle.

Gulping STRINGS OF TEXT

# include # include int main () {FILE * fh-char buffer [64] -fh = fopen ( "hello.txt", "r") - if (fh == null) {puts ( "Kann nicht öffnen Datei! ") - Ausgang (1) -} while (fgets (Puffer, 64, fh)) printf ("% s ", Puffer) -fclose (fh) -return (0) -}

Die fgets () Funktion erscheint in Zeile 15 als der Zustand des while-Schleife. Das liegt daran, fgets () einen Zeiger auf die Zeichenfolge zurückgibt, das gelesen hat, und wenn kein String gelesen wird, gibt es eine NULL. Dieser Wert hält die Schleife. Andernfalls wird die Funktion printf () in Zeile 16 zeigt den Eingang.

Die Puffergröße und die Größe der Zeichen in gulping Strings von Text lesen sind identisch. Das ist, weil die 0 am Ende der Zeichenfolge aus der Datei gelesen wird und nicht als End-of-File-Marker interpretiert.

Übung 4: Geben Sie den Quellcode von gulping Strings von Text in Ihren Editor. Erstellen und ausführen.

Menü