Tilfeldig tilgangsfiler i C ++

Tilfeldig tilgangsfiler i C ++

Å implementere koden til en tilfeldig fil i C ++ er ikke en enkel oppgave, spesielt på Linux -operativsystemet, men det kan gjøres hvis du har filbehandlingsfunksjoner. Denne artikkelen vil bruke en enkel filstruktur som støttes av C ++ programmeringsspråket ved å bruke kildekoder i Linux -operativsystemet.

Denne ideen vil bli forklart ved bruk av Linux -operativsystemet; Dermed må du ha Ubuntu installert og konfigurert på PC -en. Så etter at du har lastet ned og installert virtuell boks, må du konfigurere den. Nå må du legge Ubuntu -filen til den. Du kan gå til Ubuntus offisielle nettsted og laste ned riktig fil for maskinen og operativsystemet. Det vil ta flere timer å installere, og så må du konfigurere det på det virtuelle systemet.

Vi brukte Ubuntu 20.04, men du kan bruke den nyeste versjonen. Du må ha en tekstredigerer og tilgang til en Linux -konsoll for å fullføre implementeringen, da vi vil kunne se resultatet av kildekodene på terminalen via spørringen.

Tilfeldig filtilgang

Vi oppretter en applikasjon for å få tilgang til informasjon om filer tilfeldig. I en fil får vi tilgang til informasjonen, og tilfeldig tilgang gir brukeren til å hente posten øyeblikkelig, og det gjøres i hvilken som helst rekkefølge. Tilfeldig tilgang gir også brukervennlighet for å finne dataene umiddelbart. Dette fenomenet er nyttig i mange aspekter av vårt daglige liv. For eksempel, i bank, reservasjonssystemer, brukes dette konseptet til å hente posten rettidig. C ++ programmeringsspråk er ikke involvert i å innføre noen struktur på en fil. Så den tilfeldige tilgangen skal da starte fra bunnen av. Mange teknikker brukes til dette formålet, men det enkleste er å bruke posten med en fast lengde.

I C ++ kan filsystemet bruke tre klasser som er til stede i Stream Header -filen.

  • avStream: Det er en klasse av strømmer som får oss til å skrive på filene.
  • Ifstream: Det brukes når brukeren bare ønsker å lese dataene fra filen.
  • FStream brukes til både inngangs- og utgangsstrømmer til og fra filen.

Nå går vi mot noen eksempler for å forklare Random Access -konseptet.

Eksempel

Dette eksemplet omhandler å åpne filen og legge til data til den. Etter tillegg vises dataene som en utgang på terminalen. Filåpningen avhenger av to situasjoner. Den ene åpner den allerede eksisterende filen og skriver data i den. Mens en annen tilstand oppretter en ny fil for å legge til posten i den. Først vil vi forklare situasjonen der en allerede eksisterende fil blir redigert ved å legge til dataene. To biblioteker av “iostream” og “fstream” brukes.

# inkluderer

I hovedprogrammet lager vi objekter av "ofstream" ut. Dette objektet brukes til å åpne filen.

# Fout.åpen fil.tekst")

Fil.tekst”Er en allerede opprettet fil. Denne filen åpnes. Vi har brukt filen med dataene, så i henhold til situasjonen er vårt C ++ -program designet for å slette de allerede presenterte dataene i filen, og deretter blir de nye dataene lagt til vellykket. Her brukes en stund loop for å sikre åpningen av filen. En ting som skal nevnes her er at ettersom filen vår inneholder tidligere data, er det behov for å vise filen først før du skriver de nye dataene gjennom terminalen.

Disse 4 linjene er allerede til stede. Men disse vil bli slettet når den nye posten legges inn. Kommer nå tilbake til kildekoden.

Når filen blir utført, blir brukeren bedt om å oppgi dataene. Når dataene legges inn i terminalen, legges den posten også til filen.

# Getline (cin, linje);

Når programmet blir utført, vil brukeren fortsette å legge til dataene. For å avslutte eller slutte å gå inn i posten, må man ha en slik betingelse for å stoppe sløyfen. Så vi bruker en if-uttalelse her. Det sjekker om brukeren skriver inn nøkkelen "Q" som betyr å slutte, så slutter systemet å legge til data videre.

If (line == "q")

Gå i stykker;

"Break" -erklæringen brukes til å stoppe mer utførelse. Som vi har beskrevet, legges dataene fra terminalen lagt til filen; Dette gjøres av objektet med fstream vi opprettet.

# Fout<

Etter å ha skrevet dataene i filen, vil vi lukke dem ved å bruke det samme objektet. Til nå har vi brukt objektet "ofstream" for å skrive i filen. For å lese dataene fra filen, må vi opprette et objekt av 'ifstream', og det er greit.

# ifstream fin;

Etter å ha opprettet objektet, vil vi nå åpne filen ved å oppgi navnet på filen.

Fin.åpen fil.tekst")

Vi har brukt en stundsløyfe for å skrive dataene; Tilsvarende trenger vi en stundsløyfe for å lese dataene fra filen til slutten av terminalen. Denne gangen hentes posten fra filen til konsollterminalen. Lukk deretter filen gjennom objektet.

# Fin.Lukk();

Etter å ha stengt filen, gå til terminalen og bruk G ++ -kompilatoren for å kompilere koden.

$ g ++ -o tilfeldig tilfeldig.c
$./ tilfeldig

Tilfeldig. C er navnet på filen der vi har skrevet C ++ -koden. Når vi utfører filen, kan du se at nye data er skrevet av brukeren. Når dataene som skal legges inn er fullført, må brukeren bruke 'Q' for å slutte. Som det vises i det nedenfor siterte bildet, trykk Q.

Når brukeren trykker på q, vil dataene bli stoppet opp i filen, og så kommer kontrollen til "ifstream" for å lese dataene fra filen. Nå er filen lukket. På 'Q' vil filen bli åpnet for å vise de angitte dataene slik at data vises igjen etter å ha vist nøkkelordet 'Q'.

Nå går vi til filbehandleren og ser filen. Dataene legges inn, og den forrige fjernes.

På den annen side, hvis vi ikke har noen fil og bruker et tilfeldig navn, vil det opprettes en ny fil med det navnet.

For eksempel her brukes filnavnet "Eksempelet.tekst'. I stedet for 'fil.tekst'. Du kan se at den automatisk opprettes i mappen. Når den åpner den, viser den den samme teksten som du skrev inn.

Tilfeldig tilgang av filen gjennom SeekG () og Seekp ()

I begge disse funksjonene, i Seekg, står 'G' for 'Get', og i Seekp, 'P' står for 'Put'. Den inneholder to parametere. Den ene brukes til å bestemme antall byte som skal flytte filpekeren i filen.

Konklusjon

Denne artikkelen er skrevet på tilfeldig tilgang til filen i C++. Operativsystemet vi brukte er Linux -operativsystemet. Alle eksempler som brukes her blir enkelt forklart for å fjerne tvetydigheten fra brukerens sinn angående innspill og utgangsstrømmene. Vi håper at denne kampen vil være nyttig i fremtidsperspektiver.