Ausführen von i/o mit Binärdateien in C++

May 9

Computer-Nutzer kennen die ASCII- oder Unicode-Symbole auf ihren Bildschirmen. In Wirklichkeit hinter den Kulissen Computer binäre Zahlen verarbeiten und Speichern von Dateien im binären Datenformat. Dieses Format ist vom Menschen nicht lesbar. Die leistungsstarke Fstream C++ Klasse vereinfacht Eingabe-/Ausgabeoperationen. Durch die Zeit, die Sie in diesem Artikel abgeschlossen haben, wissen Sie, wie mithilfe von Fstream binäre Daten in und aus einer Datei lesen und schreiben.

Anweisungen

1 Sagen Sie den Präprozessor an Klasse Fstream C++ in Ihrem Programm wie folgt vorstellen:

< fstream.h > enthalten 2 Lernen Sie mit dem C++-Format des Konstruktors Fstream. Es nimmt zwei Parameter. Die erste, der Typ Char *, ist der Name der Datei. Die zweite ist eine Reihe von Flags, getrennt durch einen senkrechten, die das Betriebssystem geben zusätzliche Informationen zum Betrieb. Mach dir keine Sorgen Sie über die Fahnen jetzt: Fstream fs ("Fname", ios::in | ios::binary | ios::app);

3 Erstellen Sie oder öffnen Sie eine Datei namens "Daten.txt." Legen Sie es für Daten schreiben. Die Daten an das Ende der Datei anfügen: Fstream fs ("Daten.txt", ios::in); / / versuchen, sie zum Lesen zu öffnen.

Wenn (! fs) {}

FS.Open ("Daten.txt", IOS | ios::binary | ios::app); Datei existiert nicht; Erstellen Sie eine neue.

}

Else {}

FS.Close(); Datei existiert; Schließen Sie und öffnen Sie zum Schreiben.

FS.Open ("Daten.txt", IOS | ios::binary | ios::app);

}

4 Schreiben Sie die ersten 10 Ganzzahlen in die Datei, und schließen Sie die Datei: für (Int i = 0; i < 10; i++) {}

FS.Write (Reinterpret_cast(&i), (sizeof(int));

}

FS.Close();

5 Öffnen Sie die Textdatei mithilfe des Windows-Explorers. Sie sollten sehen die Ziffern 0 bis 9 in Folge. Obwohl die Daten im Binärformat eingegeben wurde, ist Ihr Text-Editor beschäftigt Unicode oder ASCII Zahlenwerte zu übersetzen.

6 Öffnen Sie die Datei erneut, und bereiten Sie es für die Lesung. Zeigen Sie ihren Inhalt in die Standardausgabe: FS.Open ("Daten.txt", ios::in | ios::binary);

{if(!FS)}

SomeFileException zu werfen;

}

Int Num;

für (Int i = 0; i < 10; i++) {}

FS.Read (Reinterpret_cast (& die num),sizeof(int));

Cout << Num << Endl;

}

Tipps & Warnungen

  • Dies sind grundlegende i/o-Operationen. Erweiterte gehören suchen und dereferenzieren des Dateizeigers.