Verschieben Sie einen Dateizeiger in C++

February 25

Verschieben Sie einen Dateizeiger in C++

Entwickler verwenden, als Low-Level-Sprachen C und C++. Im Gegensatz zu anderen Sprachen wie Python oder Perl C++ behandelt näher die zugrunde liegende Architektur eines Computers. Im Wesentlichen bedeutet dies, dass Aufgaben, die in anderen Sprachen mehr versteckt sind in C++ vorhanden sind. Eine dieser Aufgaben entpuppt sich als Dateibearbeitung. C++ hat einige integrierte Funktionen für eine Datei mit der Dateizeiger durchlaufen, aber sie erfordern eine gewisse Kenntnis von Zeigern und deren Funktionsweise.

Anweisungen

1 Öffnen Sie eine Datei in den C++-Code. Dieses Skelett Code als Beispiel angezeigt:

enthalten < Iostream > < Fstream > gehören using Namespace std;

Int main() {}

Ifstream Datei;

file.Open("filename.txt");

{if(!File.is_open())}

Cout << "Datei nicht öffnen" << Endl;

return 0;

}

}

Diese grundlegenden Code erstellt ein "Ifstream" Objekt "Datei", die als ein Eingabestream für die Datei dient. Die "if"-Anweisung prüft dann, wenn die Datei erfolgreich geöffnet. Wenn nicht, wird jede Einwirkung auf die Ifstream-Objekt einen Fehler ausgelöst.

2 Navigieren Sie durch die Datei mit den internen Datei-Zeigern. Programmierer verschiebt diese Zeiger über die Funktionen "tellg()" und "seekg()". Die tellg()-Funktion gibt die Position des Mauszeigers in der Datei als ganze Zahl zurück:

Int Position = file.tellg();

Die seekg()-Funktion tatsächlich bewegt sich der Zeiger, entweder basierend auf eine absolute Position, oder auf einen anderen Speicherort, einschließlich einen Offset:

file.seekg(5); Mauszeiger bewegt sich zu absoluter location

file.seekg (4, ios::beg); bewegt, dass Zeiger vier vom Anfang der Datei platziert

3 Lesen Sie die Größe der Datei mit der Datei-Zeigern. Setzen alle Beispiele zusammen, die Dateifunktionen im Ifstream Objekt erhalten die Ausgangsposition, dann bewegen Sie den Mauszeiger an das Ende und Abrufen die Endposition. Der Unterschied dieser Positionen ist die Dateigröße in Bytes.

Int Start = file.tellg();

file.seekg (0, ios::end);

Int End = file.tellg();

Int-Größe = (Ende - Anfang);