Programmierer können Dateien in C + + mit Hilfe der beiliegenden Dateizeigern durchqueren.
Zeiger
Entwickler verwenden C und C + + als Low-Level-Sprachen. Im Gegensatz zu anderen Sprachen wie Python oder Perl Gegensatz, C + + Angebote näher mit der zugrunde liegenden Architektur eines Computers. Im Wesentlichen bedeutet dies, dass Aufgaben, die mehr versteckt in anderen Sprachen vorhanden sind, in C + + sind. Eine dieser Aufgaben entpuppt sich Dateimanipulation sein. C + + hat einige integrierte Funktionalität für das Durchlaufen einer Datei mit Dateizeiger, aber sie erfordern eine gewisse Kenntnis von Zeigern und wie sie funktionieren.
Was Sie benötigen
Text Editor
C + + Compiler (g+ +) oder eine C + + IDE (Microsoft Visual Studio)
Öffnen Sie eine Datei in der C + +-Code. Sehen Sie diese Skeleton-Code als Beispiel:
# Include iostream
# Include fstream
using namespace std;
int main () {
ifstream Datei;
File.open ("filename.txt");
if (! file.is_open ()) {
cout "Datei nicht öffnen" endl;
return 0;
}
}
Diese grundlegende Code erstellt eine "ifstream" Objekt "Datei", die als Input-Stream für die Datei dient. Dann wird das "if"-Anweisung überprüft, ob die Datei erfolgreich geöffnet. Wenn dies nicht der Fall, wird jede Operation auf dem ifstream Objekt wirft einen Fehler.
Navigieren Sie durch die Datei mit den internen Dateizeiger. Programmierer bewegt sich diese Hinweise durch die "tellg ()" und "seekg ()"-Funktionen. Die tellg ()-Funktion gibt die Position der Zeiger in der Datei als Integer:
int location = file.tellg ();
Die seekg ()-Funktion tatsächlich bewegt sich der Zeiger, entweder auf einer absoluten Position erfolgt, und auf der Grundlage einer anderen Stelle, einschließlich einer Offset:
file.seekg (5); / / bewegt Zeiger auf absolute Position
file.seekg (4, ios :: beg); / / Zeiger bewegt sich vier Plätze vom Anfang der Datei
Lesen Sie die Größe der Datei mit den Dateizeiger. Putting alle Beispiele zusammen, die Funktionen in der Datei ifstream Objekt wird die Startposition zu bekommen, dann bewegen Sie den Mauszeiger auf das Ende und rufen Sie die Endposition. Die Differenz dieser Positionen ist die Dateigröße in Byte.
int start = file.tellg ();
file.seekg (0, ios :: end);
int end = file.tellg ();
int size = (end - start);
No hay comentarios:
Publicar un comentario