Hvordan lese en tekstfil og skrive ut alle strenger i C

Hvordan lese en tekstfil og skrive ut alle strenger i C

Leser en tekstfil og skriver ut alt strenger er en nøkkeloppgave som ofte gjøres av C -programmerere. Det er viktig å forstå det grunnleggende om lesning en tekstfil i C og hvordan skrive ut de strenger fra det før du prøver denne oppgaven.

Lesingen av en tekstfil og utskrift av alle strenger den inneholder vil bli demonstrert ved hjelp av C -programmering i denne artikkelen.

Les en tekstfil og skriv ut alle strenger i C

Det er fire funksjoner å lese en tekstfil og skrive ut alle strenger i C, som er som følger:

  • FREAD ()
  • fgets ()
  • fscanf ()
  • FGETC ()

Metode 1: Fread () -funksjon

Data er Les fra filen og lagret i en buffer ved hjelp av C -funksjonen FREAD (). For å telle elementer i en matrisebuffer, FREAD () Metoden lyder fra inngangsstrømmen som er gitt som funksjonsparameter. Når hver karakterfunksjon leser, beveger filposisjonsindikatoren for den spesifiserte inngangsstrømmen fremover.

De FREAD () Metode i C har syntaks.

size_t Fread (void * array_buffer, størrelse_t størrelse, størrelse_t telling, fil * file_stream)

La oss se på Fread () -funksjonsparametere nærmere:

Array Buffer: Data holdes midlertidig i datamaskinens buffer, et minneområde. Dette argumentet er en peker som refererer til stedet til minne om bufferen som vil inneholde dataene lese Fra inngangsstrømmen.

størrelse: Dette argumentet instruerer funksjonen til hvor mange byte med data som vil bli lest fra inngangsstrømmen for hver blokk.

telle: Den spesifiserer hvor mange tegn som skal leses fra datainngangsstrømmen.

file_stream: Det er en peker som refererer til et filobjekt.

#inkludere
#inkludere
int main ()
Fil *fil;
char buffer [100];
fil = fopen ("c_file.txt "," r ");
if (file == null)
printf ("Feil: kunne ikke åpne fil \ n");
retur 1;

int count = Fread (& buffer, størrelse av (char), 100, fil);
fClose (fil);
printf ("Data lest fra filen er: %s \ n", buffer);
printf ("antall elementer lest: %d", count);
fClose (fil);
retur 0;

I dette eksemplet definerer vi en tegneseriebuffer av størrelse 100 før du bruker fopen () Å åpne tekstfilen C_file.tekst i lesemodus. Ved hjelp av en IF -uttalelse bestemmer vi om filen ble åpnet med hell. Følgende trinn er å lese opp til 100 byte data fra filen ved hjelp av FREAD (). Målbufferen, i dette tilfellet buffergruppen, er den første parameteren til FREAD (). Det andre argumentet, størrelsen av, bestemmer størrelsen på hvert element som skal leses når vi leser i karakterer. Den tredje inngangen er mengden som skal leses, som i dette tilfellet er 100. De filpeker er den fjerde parameteren. Til slutt bruker vi printf () for å skrive ut dataene som leses fra filen og fclose () For å lukke filen. Å kjøre dette programmet vil resultere i resultater som dette, hvis C_file.tekst:

Produksjon

Metode 2: Fgets () -funksjon

C -språket er fgets () Metoden leser N -tegn fra strømmen inn i strengen Str. De fgets () metoden fortsetter å lese karakterer fra strømmen til (N-1) Karakterer er lest, et nytt linjekarakter er blitt oppdaget, eller slutten av filen (EOF) er nådd.

#inkludere
int main ()
Fil *fil;
char buffer [100];
fil = fopen ("c_file.txt "," r ");
if (file == null)
printf ("Feil: kunne ikke åpne fil \ n");
retur 1;

mens (fgets (buffer, 100, fil))
printf ("String lest fra fil: %s", buffer);

fClose (fil);
retur 0;

Dette eksemplet bruker fopen () Å åpne en tekstfil som heter C_file.tekst I lesemodus etter først å ha erklært en karakteropprettsbuffer av størrelse 100. Ved hjelp av en IF -uttalelse bestemmer vi om filen ble åpnet med hell. Etter det sysselsetter vi en stundsløyfe og fgets () å lese tekstlinjer fra filen ved hjelp av en filpeker. Ved hjelp av printf () Innenfor sløyfen skriver vi ut hver tekstlinje. Å kjøre dette programmet vil gi utdataene:

Produksjon

Metode 3: FSCANF () -funksjon

En standard biblioteksmetode som heter fscanf () Godtar en rekke parametere og forvandler dem til verdier at applikasjonen din kan bruke. Samtidig som Lesing fra filen, den vil returnere formatstrengen i stedet for alt den forventer å se innen. For å forhindre at programvaren din tolker formatstrengen som en del av sin egen syntaks, må den være omgitt i sitater (“”).

#inkludere
int main ()
Fil *fil;
int num1, num2, num3;
fil = fopen ("c_file.txt "," r ");
if (file == null)
printf ("Feil: kunne ikke åpne fil \ n");
retur 1;

fscanf (fil, " %d %d %d", & num1, & num2, & num3);
printf ("tall som er lest fra filen er: %d, %d, %d \ n", num1, num2, num3);
fClose (fil);
retur 0;

Dette eksemplet åpner filen C_file.tekst I lesemodus ved først å erklære 3 int -variabler, num1, num2 og num3. Ved hjelp av en IF -uttalelse bestemmer vi om filen ble åpnet med hell. Følgende trinn er å lese tre tall fra filen ved hjelp av fscanf () og %d Formatspesifikasjon. Variablene NUM1, NUM2 og NUM3 er der verdiene holdes. Til slutt bruker vi printf () å sende ut verdiene til disse variablene og fclose () For å lukke filen. Å kjøre dette programmet vil resultere i resultatene vist nedenfor:

Produksjon

Metode 4: FGETC () -funksjon

En fil kan være lese karakter etter karakter ved å bruke FGETC () funksjon. ASCII -koden for tegnet denne funksjonen leser blir returnert av denne funksjonen. Tegnet fra filpekerens spesifiserte plassering returneres. Følgende tegn blir lest når tegnet er lest, ifølge filpekeren. Denne metoden returnerer en EOF -fil hvis pekeren er på slutten av filen, eller hvis det er et problem.

#inkludere
int main ()
Fil *fil;
char c;
fil = fopen ("c_file.txt "," r ");
if (file == null)
printf ("Feil: kunne ikke åpne fil \ n");
retur 1;

mens ((c = fgetc (fil)) != Eof)
printf ("%c", c);

fClose (fil);
retur 0;

I dette tilfellet bruker vi fopen () Kommando for å åpne tekstfilen C_file.tekst i lesemodus. Ved hjelp av en IF -uttalelse bestemmer vi om filen ble åpnet med hell. Etter det sysselsetter vi en stundsløyfe og FGETC () å lese tegn fra filen. Tegnet mottatt fra filen er tilordnet variabelen c inne i løkken før du blir skrevet ut med å bruke printf (). Sløyfen fortsetter å løpe til Eof (Slutt på filen) Konstant oppdager slutten av filen. Å kjøre dette programmet vil få følgende resultater, hvis C_file.tekst Inneholder ordet “Linuxhint”.

Produksjon

Konklusjon

Ved å bruke trinnene som er beskrevet ovenfor, kan C brukes til Les en tekstfil og Skriv ut alle strenger Det inneholder. Det begynner med å bruke fopen () Systemanrop for å åpne filen, etterfulgt av bruken av fscanf (), Fread (), Fgets (), FGETC () å lese dataene. Etterpå er filen lukket ved hjelp av fclose () og en for loop brukes til å skrive ut strengene. Ved å bruke disse teknikkene kan C brukes til å lese og skrive ut data på en effektiv måte.