Stream Input / Output in C ++

Die C ++ Klassen ifstream und ofstream sind Subklassen von Istream und ostream entwickelt, um Strom Ein- und Ausgang auf die Festplatte Dateien ausführen. Sie können die gleichen Extraktoren und Kuvertiermaschinen verwenden auf ifstream und ofstream Objekte, die Sie auf bereits verwendet haben cin und cout.

Das ifstream ist eigentlich eine Instantiierung der Template-Klasse basic_ifstream mit T einstellen verkohlen. Das basic_ifstream Template-Klasse wird mit anderen Typen instanziiert sowie verschiedene Arten von Eingangsklassen zur Verfügung zu stellen. Zum Beispiel Klasse der breiten Stream-Datei wifstream basiert auf dem gleichen basic_ifstream mit T einstellen wchar_t. Das ofstream ist das gleiche wie basic_ofstream .

Die Klassen ifstream und ofstream bieten Konstrukteuren verwendet, um eine Datei für Eingabe und Ausgabe zu öffnen, beziehungsweise:

ifstream :: ifstream (const char * pszFileName, ios_base :: openmode mode = ios_base :: in) -ofstream :: ofstream (const char * pszFileName, ios_base :: openmode mode = ios_base :: out | ios_base :: trunc) -

Das erste Argument ist ein Zeiger auf den Namen der Datei zu öffnen. Das zweite Argument gibt den Modus. Der Typ openmode ist ein Integer-Typ definiert in ios_base. Auch definiert innerhalb ios_base sind die möglichen Werte für Modus in dieser Tabelle aufgeführt.

Dies sind Bit-Felder, dass der Programmierer bitweise OPs zusammen. Der Standardmodus für ifstream ist die Datei für die Eingabe mit dem Zeiger auf den Anfang der Datei gesetzt zu öffnen (das logisch genug ist).

Konstanten, die steuern, wie Dateien geöffnet werden
FlaggeBedeutung
ios_base :: appSpringt an die End-of-Datei vor jedem Schreib.
ios_base :: aßSpringt an die End-of-Datei unmittelbar nach dem Öffnen der Datei, wenn itexists.
ios_base :: binaryÖffnen Sie die Datei im Binär-Modus (alternativ ist ein Text-Modus).
ios_base :: inÖffnen Sie die Datei für die Eingabe (implizierte für istream).
ios_base :: outÖffnen Sie die Datei für die Ausgabe (implizierte für ostream).
ios_base :: truncDatei kürzen, wenn es (Standard für ostream) vorhanden ist.

Der Standardwert für ofstream ist für die Ausgabe zu öffnen und die Datei, wenn sie bereits vorhanden ist abgeschnitten. Die Alternative zu kürzen ist ios_base :: app, was bedeutet, neue Ausgabe an das Ende der Datei anhängen, wenn es bereits vorhanden ist. Beide Optionen erstellen eine Datei, wenn es nicht bereits vorhanden ist.

Beispielsweise nach der StreamOutput Programm öffnet die Datei MyName.txt und schreibt dann einige wichtige und absolut wahre Informationen zu dieser Datei:

// StreamOutput - einfache Ausgabe in eine Datei # include using namespace std-int main (int nNumberofArgs, char * pszArgs []) {ofstream meine ( "MyName.txt") - mein lt; lt; "Stephen Davis ist höflichen und gut aussehend n" lt; lt; "Und Balding definitiv nicht vorzeitig" lt; lt; Endl-return 0-}

Der Destruktor für die Datei-Stream-Klassen automatisch die zugehörige Datei schließen. In diesem einfachen Beispiel, das MyName.txt Datei geschlossen wurde, als der meine Objekt ging aus Spielraum bei der Rückkehr aus Main(). Globale Objekte werden im Rahmen der Beendigung des Programms geschlossen.

Menü