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 lesning en tekstfil i C og hvordan skrive ut de strenger fra den før du prøver denne oppgaven.

Lesing 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 for å lese en tekstfil og skrive ut alle strenger i C, som er som følger:



Metode 1: fread() funksjon

Data er lese fra filen og lagret i en buffer ved hjelp av C-funksjonen fread() . For å telle elementer i en matrisebuffer, fread() metoden leser fra inngangsstrømmen gitt som funksjonsparameter. Når hver tegnfunksjon leses, beveger filposisjonsindikatoren for den angitte inngangsstrømmen seg fremover.



De fread() metoden i C har syntaksen.





size_t fread ( tomrom * array_buffer, size_t størrelse , antall størrelse_t, FILE * filstrøm )

La oss se på fread() funksjonsparametere mer detaljert:



array buffer: Data holdes midlertidig i en datamaskins buffer, en minneplass. Dette argumentet er en peker som refererer til stedet i minnet til bufferen som vil inneholde dataene lese fra inngangsstrømmen.

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

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

filstrøm: Det er en peker som refererer til et FILE-objekt.

#include
#include
int main ( ) {
FIL * fil ;
char buffer [ 100 ] ;
fil = fopen ( 'C_File.txt' , 'r' ) ;
hvis ( fil == NULL ) {
printf ( 'Feil: kunne ikke åpne filen \n ' ) ;
komme tilbake 1 ;
}
int telle =fread ( & buffer, størrelse på ( røye ) , 100 , fil ) ;
flukk ( fil ) ;
printf ( 'Data som er lest fra filen er: %s \n ' , buffer ) ;
printf ( 'Antall leste elementer: %d' , telle ) ;
flukk ( fil ) ;
komme tilbake 0 ;
}

I dette eksemplet definerer vi en tegnarraybuffer av størrelse 100 før bruk fopen() for å åpne tekstfilen C_File.txt i lesemodus. Ved å bruke en if-setning avgjør vi om filen ble åpnet. Følgende trinn er å lese opp til 100 byte med data fra filen som bruker fread() . Målbufferen, i dette tilfellet bufferarrayen, er den første parameteren til fread(). Det andre argumentet, størrelsen av , bestemmer størrelsen på hvert element som skal leses mens vi leser i tegn . 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 er lest fra filen og fclose() for å lukke filen. Å kjøre dette programmet vil resultere i resultater som dette, if C_File.txt :

Produksjon

Metode 2: fgets() funksjon

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

#include
int main ( ) {
FIL * fil ;
char buffer [ 100 ] ;
fil = fopen ( 'C_File.txt' , 'r' ) ;
hvis ( fil == NULL ) {
printf ( 'Feil: kunne ikke åpne filen \n ' ) ;
komme tilbake 1 ;
}
samtidig som ( fgets ( buffer, 100 , fil ) ) {
printf ( 'Streng lest fra fil: %s' , buffer ) ;
}
flukk ( fil ) ;
komme tilbake 0 ;
}

Dette eksemplet bruker fopen() for å åpne en tekstfil kalt C_File.txt i lesemodus etter først å ha erklært en tegnmatrisebuffer av størrelse 100 . Ved å bruke en if-setning avgjør vi om filen ble åpnet. Etter det bruker vi en while-løkke og fgets() for å lese tekstlinjer fra filen ved hjelp av en filpeker. Ved hjelp av printf() innenfor loopen skriver vi ut hver linje med tekst. Å kjøre dette programmet vil gi utdata:

Produksjon

Metode 3: fscanf() funksjon

En standard bibliotekmetode kalt fscanf() godtar en rekke parametere og transformerer dem til verdier applikasjonen din kan bruke. Samtidig som lese fra filen , vil den returnere formatstrengen i stedet for alt den forventer å se innenfor. For å forhindre at programvaren din tolker formatstrengen som en del av sin egen syntaks, må den være omgitt av anførselstegn ('').

#include
int main ( ) {
FIL * fil ;
int num1, num2, num3;
fil = fopen ( 'C_File.txt' , 'r' ) ;
hvis ( fil == NULL ) {
printf ( 'Feil: kunne ikke åpne filen \n ' ) ;
komme tilbake 1 ;
}
fscanf ( fil , '%d %d %d' , & nummer 1, & nummer 2, & nummer 3 ) ;
printf ( 'Tall som leses fra filen er: %d, %d, %d \n ' , num1, num2, num3 ) ;
flukk ( fil ) ;
komme tilbake 0 ;
}

Dette eksemplet åpner filen C_File.txt i lesemodus ved først å deklarere 3 int-variabler, num1, num2 og num3. Ved å bruke en if-setning avgjør vi om filen ble åpnet. Følgende trinn er å lese tre tall fra filen ved hjelp av fscanf() og %d formatspesifikasjoner. Variablene num1, num2 og num3 er der verdiene holdes. Til slutt bruker vi printf() å gi 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 tegn for tegn ved å bruke fgetc() funksjon. ASCII-koden for tegnet denne funksjonen leser returneres av denne funksjonen. Tegnet fra filpekerens angitte plassering returneres. Følgende tegn leses når tegnet er lest, i henhold til filpekeren. Denne metoden returnerer en EOF-fil hvis pekeren er på slutten av filen eller hvis det er et problem.

#include
int main ( ) {
FIL * fil ;
røye c;
fil = fopen ( 'C_File.txt' , 'r' ) ;
hvis ( fil == NULL ) {
printf ( 'Feil: kunne ikke åpne filen \n ' ) ;
komme tilbake 1 ;
}
samtidig som ( ( c = fgetc ( fil ) ) ! = EOF ) {
printf ( '%c' , c ) ;
}
flukk ( fil ) ;
komme tilbake 0 ;
}

I dette tilfellet bruker vi fopen() kommando for å åpne tekstfilen C_File.txt i lesemodus. Ved å bruke en if-setning avgjør vi om filen ble åpnet. Etter det bruker vi en while-løkke og fgetc() for å lese tegn fra filen. Tegnet mottatt fra filen er tilordnet variabelen c inne i løkken før den skrives ut ved bruk printf (). Løkken fortsetter å løpe til EOF (End of File) konstant oppdager slutten av filen. Å kjøre dette programmet vil få følgende resultater, hvis C_File.txt inneholder ordet 'Linuxint'.

Produksjon

Konklusjon

Ved å bruke trinnene som er skissert ovenfor, kan C brukes til lese en tekstfil og skriv ut alle strenger Det inneholder. Det begynner med å bruke fopen() systemkall for å åpne filen, etterfulgt av bruken av fscanf(), fread(), fgets(), fgetc() å lese dataene. Etterpå lukkes filen vha fclose() og en for-løkke brukes til å skrive ut strengene. Ved å bruke disse teknikkene kan C brukes til å hjelpe til med å lese og skrive ut data på en effektiv måte.