Hvordan lese en tekstfil i C

Hvordan lese en tekstfil i C
Tekstfiler er blant de mest brukte filtypene på datamaskiner. De kan brukes til et bredt utvalg av oppgaver, for eksempel lagring av tekstdokumenter eller programkodekoder. De blir lagret i systemet med .tekst Utvidelse. Når du jobber med C -kode, kan det hende du må lese en tekstfil som en del av prosjektet ditt eller for å få hjelp fra tekstfilen. I stedet for å gå tilbake til stedet for å lese en tekstfil, er det bedre å lese den inne i en kode.

Denne artikkelen diskuterer nyttige måter å lese en tekstfil på C -programmeringsspråket.

Les en tekstfil i C

Det er fire metoder for å lese en tekstfil i C, som er.

  • fscanf () for å lese en tekstfil
  • fgets () for å lese en tekstfil
  • FGETC () for å lese en tekstfil
  • Fread () for å lese en tekstfil

Metode 1: Bruke FSCANF () -funksjon for å lese en tekstfil i C

De fscanf () Funksjon er en standard bibliotekfunksjon som tar inn en rekke argumenter og konverterer dem til verdier som kan brukes av programmet ditt. Den finner en formatstreng inne i filen og returnerer en formatstreng når du leser fra filen. Formatstrengen må være vedlagt i sitater (“”) slik at de ikke blir tolket av programmet ditt som en del av sin egen syntaks.

De fscanf () Funksjonen leser data på stedene som leveres av elementene i argumentlisten. Argument-listeoppføringene må alle peke på variabler hvis typer samsvarer med typespesifikatorene i format-streng.

Det gir enten EOF (slutten av filen) eller antall variabler med verdier tildelt dem.

La oss se på et eksempel for å lese en tekstfil ved hjelp av fscanf () funksjon:

#inkludere
int main ()

Fil* ptr = fopen ("File_name.txt "," r ");
if (ptr == null)
printf ("Ingen slik fil eksisterer.");
retur 0;

char buf [100];
mens (FSCANF (PTR, "%S", BUF) == 1)
printf ("%s \ n", buf);
retur 0;

I denne koden, fopen () Funksjon brukes til å åpne filen under pekervariabel PTR. fscanf () Funksjon brukes deretter til å lese filen og deretter skrive ut innholdet.

Produksjon

Metode 2: Bruke Fread () -funksjon for å lese en tekstfil i C

Data fra filen blir lest av FREAD () metode og lagret i en buffer. Opp til tellende elementer leses inn i en matrisebuffer av FREAD () funksjon fra inngangsstrømmen, som leveres som et funksjonsargument.

Når det totale antallet varer blir lest vellykket, returneres et størrelse_tobjekt. Hvis denne verdien er forskjellig fra verdien som er spesifisert av programmet, oppstod enten en feil eller slutten av filen ble nådd.

#inkludere
int main ()

char buffer [33];
Fil * strøm;
Stream = fopen ("File_name.txt "," r ");
int count = Fread (& Buffer, SizeOf (Char), 33, Stream);
fclose (strøm);
printf ("data lest fra filen: %s \ n", buffer);
printf ("antall elementer lest: %d", count);
retur 0;

I denne koden, fopen () funksjon brukes til å åpne filen og deretter FREAD () Funksjon brukes deretter til å lese filen og deretter skrive ut innholdet. 33 viser antall tegn den vil lese fra filen.

Produksjon

Metode 3: Bruke Fgets () -funksjon for å lese en tekstfil i C

Med fgets () funksjon, leses en linje fra den spesifiserte strømmen og lagres i den tilsvarende strengvariabelen. Når (n-1) tegn, Newline-tegn eller slutten av filen blir lest, eller avhengig av hva som skjer først, slutter programmet.Hvis funksjonen er vellykket, returneres den samme strengen. Innholdet i strengen beholdes på plass og en nullpeker oppstår hvis funksjonen treffer ende-av-filen uten tegn som er lest.

I tilfelle en fiasko gir det en nullpeker.

#inkludere
int main ()
Fil *fp;
char str [60];
fp = fopen ("fil.txt "," r ");
if (fp == null)
Perror ("Feil i åpningsfilen");
return (-1);

if (fgets (str, 100, fp)!= Null)
putter (STR);

fClose (FP);
return (0);

I denne koden, fil.tekst Filen åpnes av fopen () funksjon og da fgets () Funksjon brukes deretter til å lese strengene i filen og deretter skrive dem ut. 100 viser antall strenger den vil lese.

Produksjon

Metode 4: Bruke FGETC () -funksjon for å lese en tekstfil i C

De FGTEC () funksjon brukes til å lese karakterene en etter en. Funksjonen returnerer deretter ASCII -koden til karakteren den har lest. Den returnerer karakteren som var til stede på filpekerens uttalte sted. Filpekeren går deretter videre til neste tegn. Hvis det er en feil eller pekeren når slutten av filen, returnerer denne funksjonen en EOF (slutt-av-fil).

#inkludere
int main ()

Fil *fp = fopen ("fil.txt "," r ");
if (fp == null)
retur 0;
gjøre
Char C = FGETC (FP);
if (Feof (FP))
gå i stykker ;
printf ("%c", c);
mens (1);
fClose (FP);
return (0);

fil.tekst”Filen åpnes av fopen () Funksjon i denne koden under pekervariabelen FP. Filens tegn blir deretter lest ved hjelp av FGETC () metode, som skriver ut karakterene som ble lest.

Produksjon

Konklusjon

Å lese filer er en nødvendighet for hver datamaskinbruker, og spesielt for en utvikler er det viktig at han kan få tilgang til filer ved hjelp av koden sin. Derfor er 4 metoder nevnt ovenfor i artikkelen for å lese a tekstfil Bruke C -språk. fscanf () og FREAD () brukes til å lese filene på samme måte, med unntak av at FREAD () lar oss spesifisere antall karakterbrukere ønsker å lese, mens fgets () brukes til å lese en fillinje for linje, og FGETC () brukes til å lese et filtegn etter karakter.