Hvordan du flytter en fil peker i C ++

Hvordan du flytter en fil peker i C ++


Utviklere bruker C og C ++ som lavnivå språk. I motsetning til andre språk, for eksempel Python eller Perl, C ++ avtaler nærmere med den underliggende arkitekturen av en datamaskin. I hovedsak betyr dette at oppgaver som er mer skjult i andre språk er til stede i C ++. En av disse oppgavene viser seg å være fil manipulasjon. C ++ har noen innebygd funksjonalitet for traversering en fil med fil pekere, men de krever en viss kunnskap om pekere og hvordan de fungerer.

Bruksanvisning

1 Åpne en fil i C ++ kode. Se dette skjelettet kode som et eksempel:

inkluderer <iostream> inkluder <fstream>

bruker namespace std;

int main () {

ifstream fil;

file.open ( «filnavn.txt");

if (! file.is_open ()) {

cout << "filen ikke åpnes" << endl;

returnere 0;

}

}

Denne grunnleggende kode oppretter en "ifstream" objekt "fil" som fungerer som en inngang strøm for filen. Deretter "hvis" statement sjekker om filen åpnes med hell. Hvis det ikke skjer, vil en eventuell operasjon på ifstream objektet kaste en feil.

2 Naviger gjennom filen ved hjelp av interne fil pekere. Programmerere beveger disse pekerne gjennom "tellg ()" og "seekg ()" funksjoner. Den tellg () -funksjonen returnerer posisjonen til markøren i filen som et heltall:

int plassering = file.tellg ();

Den seekg () -funksjonen faktisk beveger pekeren, enten basert på en absolutt plassering, eller basert på et annet sted, inkludert en offset:

file.seekg (5); // Flytter pekeren til absolutt plassering

file.seekg (4, ios :: beg); // beveger pekeren fire steder fra begynnelsen av filen

3 Les størrelsen på filen ved hjelp av filen pekere. Putting alle eksemplene sammen, vil filen funksjoner i ifstream objektet få startposisjonen, og deretter flytte pekeren til slutten og hente avslutningen posisjon. Forskjellen på disse stillingene er filstørrelsen i byte.

int start = file.tellg ();

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

int end = file.tellg ();

int size = (end - start);