Zusammenfassung der Wissenspunkte zum C++-Dateibetrieb

Dateistream-Operationen für Textdateien

Datenfluss

In C++ werden Dateioperationen über die Unterklasse fstream (Dateistream) von stream implementiert. Wenn Sie Dateien auf diese Weise bedienen möchten, müssen Sie daher eine Header-Datei hinzufügen<fstream> , der Code lautet wie folgt:

#include <fstream>

fstream bietet drei Klassen zum Implementieren von C++-Dateioperationen:

  • ofstream: Dateiklasse für Schreiboperationen (Ausgabe) (abgeleitet von ostream)
  • ifstream: Dateiklasse für Leseoperationen (Eingabe) (abgeleitet von istream)
  • fstream: eine Dateiklasse, die gleichzeitig gelesen und geschrieben werden kann (abgeleitet von iostream)

Die Verwendung von Dateiströmen zum Bearbeiten von Dateien kann in drei Schritte unterteilt werden: Öffnen Sie die Datei, Lesen und schreiben Sie die Datei , Schließen Sie die Datei.

öffne einen Ordner

Um eine Datei zum Lesen zu öffnen, können Sie die Klassenfunktionen fstream oder ifstream verwenden.

  • ifstream-Funktion
ifstream inFile("test.txt", ios::in);
  1. inFile ist ein Objekt des deklarierten ifstream (es kann auch als Variable bezeichnet werden, aber diese Variable enthält mehr Dinge, ähnlich wie Strukturvariablen). Wenn das Objekt deklariert wird, wird eine spezielle Funktion (Konstruktor, lernen Sie den objektorientierten Teil) verwendet automatisch ausgeführt werden. Sie werden es mit der Zeit verstehen);
  2. test.txt und ios::in sind die an die Funktion übergebenen Parameter. test.txt ist der Pfad und Dateiname, der geöffnet werden soll, ios::in ist die Methode zum Öffnen der Datei, was bedeutet, dass die Datei zur Eingabe geöffnet wird;
  3. Durch Ausführen dieser Funktion wird die Datei im aktuellen Verzeichnis zum Lesen geöffnettest.txt. Anschließend können Sie die Datei bearbeitentest.txt, indem Sie einige Funktionen über inFile aufrufen.
  • fstream-Funktion

Da die fstream-Klasse auch Dateien zur Eingabe öffnen kann, kann die obige Anweisung auch so geschrieben werden:

fstream inFile("test.txt", ios::in);

Die Dateiöffnungsmethoden der Klasse fstream sind:

Öffnen mit beschreiben
ios::in Öffnen Sie eine Datei zum Lesen
ios::out Öffnen Sie eine Datei zum Schreiben
ios::app Alle geschriebenen Daten werden an das Ende der Datei angehängt. Diese Methode erfordert die Verwendung von ios::out
ios::ate Die geschriebenen Daten werden an das Ende der Datei angehängt, können aber auch an andere Stellen geschrieben werden. Für diese Methode ist ios::out nicht erforderlich
ios::trunk Aktuellen Dateiinhalt verwerfen
ios::nocreate Wenn die zu öffnende Datei nicht existiert, funktioniert der Aufruf der Öffnungsfunktion mit diesem Parameter nicht.
ios::noreplace Wenn die zu öffnende Datei bereits vorhanden ist, wird beim Versuch, sie mit der Funktion „Öffnen“ zu öffnen, ein Fehler zurückgegeben
ios::binary Öffnen Sie eine Datei im Binärformat

Die zum Lesen von -Dateien geeignete Öffnungsmethode kann auch für die ifstream-Klasse verwendet werden, die für -Dateien geeignet ist Die Eröffnungsmethode des Schreibens kann auch für ofstream verwendet werden, und ios::binary kann für beide verwendet werden.

Dateien lesen und schreiben

  • Dateien lesen

Wenn Sie die Datei im Textmodus bedienen (kein Attribut ios::binary), ist die Syntax zum Lesen der Datei der Syntax für die cin-Eingabe über die Tastatur sehr ähnlich. Die folgende Anweisung kann beispielsweise eine Ganzzahl und eine Gleitkommazahl aus der Datei lesentest.txt.

int n;
float f;
inFile >> n >> f;
  • Datei schreiben

Auch die Syntax zum Schreiben von Dateien ist der Ausgabe auf dem Bildschirm sehr ähnlich.

Das folgende Programm schreibt beispielsweise die Ganzzahl 100 und die Gleitkommazahl 3,14 in eine Dateia.txt.

// 声明对象ofile,以读的方式打开文件a.txt
ofstream ofile("a.txt", ios::out);
// 将100、空格、3.14、换行符写入文件a.txt
ofile << 100 << " " << 3.14 << endl;
// 关闭文件
ofile.close();

Datei schließen

Datei schließen Unabhängig davon, ob es sich um ein ifstream-, ofstream- oder fstream-Objekt handelt, können Sie zum Schließen der Datei dieselbe Syntax verwenden, nämlichxx.close();.

Guess you like

Origin blog.csdn.net/m0_73879806/article/details/134407420