Hvordan lese inndata fra en fil i C

Hvordan lese inndata fra en fil i C
Informasjonen vil gå tapt når et program er avsluttet. Når vi lagrer dataene i en fil, vil det bli beholdt selv om programmet krasjer. Hvis vi mye data å sette inn, vil dette kreve mer tid å gjøre. Men hvis vi har en fil som inkluderer alt innholdet, vil vi raskt hente den ved å bruke noen C -funksjoner. Vi vil direkte overføre filen fra den ene enheten til den andre uten endringer.

Det er to typer filer: tekst og binær. Tekstfiler er de med utvidelsen .tekst. Disse filene er enkle å lage. Når vi får tilgang til disse filene, får vi en klar tekst for all informasjonen. Dataene kan ganske enkelt endres eller slettes. Utvidelsen .Bin betegner en binær fil. I stedet for å beholde informasjon i klar tekst, gjør de det i binære tall (0s og 1s).

La oss diskutere i detalj de forskjellige tilnærmingene for hvordan du kan lese innholdet i en fil.

Bruke fseek () -funksjon for å lese inndata fra filen

Hvis vi har et stort antall oppføringer i en fil og vi ønsker å hente dem en etter en i en bestemt posisjon, må vi iterere gjennom hvert element før dette. Det vil konsumere en betydelig mengde minne- og behandlingstid. Gjennom fseek () -funksjonen kan vi få den nødvendige informasjonen mer effektivt.

#inkludere
#inkludere
struktur Thnumber

int num1, num2, num3;
;
int main ()

int n;
struct Thrnumber Number;
Fil *fptr;
if ((fptr = fopen ("file_1.txt "," r ")) == null)
printf ("Fil kan ikke åpne");
Avslutt (1);

fseek (fPTR, -SIZEOF (struct Thrnumber), Seek_end);
for (n = 1; n < 5; ++n)

Fread (& Number, SizeOf (struct Thrnumber), 1, FPTR);
printf ("n1: %d \ tn2: %d \ tn3: %d \ n", tall.num1, nummer.num2, nummer.num3);
fseek (FPTR, -2*størrelse av (struct Thrnumber), Seek_cur);

fClose (FPTR);
retur 0;

Her skal vi starte programmet ved å integrere nødvendige overskriftsfiler #include og #include . Nå oppretter vi en funksjon og deretter blir tre forskjellige variabler initialisert. Disse variablene har en heltalldatatype. Etter dette erklærer vi Main () -funksjonen og begynner å kode i kroppen til Main () -funksjonen.

I tillegg til dette konstruerer vi en filpeker. “Hvis” uttalelse blir deretter brukt. Her setter vi filpekeren lik Fopen () -funksjonen. Fopen () -funksjonen brukes til å åpne den spesifiserte filen. Ved hjelp av IF -setningen sjekker vi om den gitte banen til filen er lik 'NULL' Printf -uttalelse skriver ut teksten '-filen ikke kan åpne'. Ellers går programmet ut.

Ytterligere fseek () -metode brukes. Det har tre parametere. Det første argumentet inneholder filpekeren. Det andre argumentet viser plasseringen av den gitte filen. Tilsvarende indikerer det siste argumentet poenget hvor avviket begynner. I tillegg til dette søker vi om en loop. Vi erklærer variabelen og setter betingelsen for nummeret og deretter til slutt, vi gjør et økning i verdien av et tall.

For å få teksten fra den spesifiserte filen, bruker vi Fread () -funksjonen. Nå må vi skrive ut resultatet slik at printf () -funksjonen brukes. Nok en gang bruker vi fseek () -funksjonen. Til slutt for å lukke den gitte filen, brukte vi fclose () -funksjonen.

Bruke FGETC () -funksjon for å lese inndata fra en fil

FGETC () -funksjonen henter karakterene som er referert til av funksjonsindikatoren. Det gir ordet mottatt av strømmen og justerer lesepunktet mot neste ord etter hver gyldig lesing. Men hvis ingen data er til stede for å lese, beregner denne metoden en variabel EOF (-1).

#inkludere
#inkludere
#inkludere
int main ()

Fil* fptr;
Char Chr;
FPTR = FOPEN ("Data.txt "," r ");
if (null == fptr)
printf ("Fil kan ikke åpne \ n");

printf ("Data for filen er \ n Navn: Amna \ n Alder: 24 \ N Navn: Sara \ n Alder: 16 \ N Navn: Aneela \ N Alder: 30 \ n");
Gjør
CHR = FGETC (FPTR);
printf ("%c", chr);
mens (Chr != Eof);
fClose (FPTR);
retur 0;

Først av alt inkluderer vi tre overskriftsfiler. Standardbibliotek er identifikatoren for overskriftsfilen . Den inneholder data om lagringstilgjengelighet og gratis metoder. Standard input-output er identifikatoren for overskriftsfilen . Den inneholder data om inngangs-/utgangsmetoder. Hodefilen inkluderer makrodeklarasjoner, variabler og definisjoner av metoder og klasser som ikke bare brukes til tekstbehandling, men også for forskjellige lagringshåndteringsfunksjoner.

I neste trinn initialiserer vi main () -funksjonen. Her er en peker av en spesifisert fil konstruert, og vi erklærer at en variabel har en tegndatatype. Deretter bruker vi fopen () -funksjonen. Denne metoden inneholder to argumenter: Den første parameteren viser filnavnet, og den andre parameteren viser modus for filen. Her åpner Fopen () -metoden den definerte filen i lesemodus. Vi har brukt IF -uttalelsen for å sjekke om pekeren til filen er lik 'Null' eller ikke. Hvis filpekeren tilsvarer 'Null', avsluttes det spesifiserte programmet. Ellers bruker vi printf () -funksjonen for å skrive ut innholdet i filen.

I tillegg til dette, ved bruk av en do-hele sløyfe, går vi gjennom hver karakter en etter en. Her erklærer vi FGETC () -funksjonen for å hente dataene fra den definerte filen. Nå bruker vi mens Loop skal undersøke om den gitte karakteren ikke ville være på slutten av linjen; Hvis det ville være, slutte å lese. FClose () -metoden brukes, og dette bringer filen til slutt.

Mens du bruker FGETC () -funksjonen, leser den ovennevnte koden hele dataene til filen, et enkelt tegn om gangen. En do-mens Loop vil bli brukt til å hente tegn med mindre de kommer til slutten av filen. Den produserer EOF (-1) røye når den oppnår konklusjonen.

Konklusjon

I denne artikkelen har vi gått gjennom forskjellige måter som brukes til å lese dataene fra filen. Her har vi brukt FGETC (), FREAD () og FSEEK () Metoder for å få innhold ved hjelp av spesielle eksempler. Disse alle er forhåndsdefinerte funksjoner til C-språket. For å lese hvert eneste ord i en fil, har vi brukt FGETC () -metoden. På samme måte som å trekke ut konfigurerte data til en fil, har vi brukt FSEEK () -metoden.