Fil I / O i C-programmering med eksempler

I denne guiden vil vi lære hvordan du utfører inngang / utgang (I / O) -operasjoner på en fil ved hjelp av C-programmeringsspråk.

C File I / O – Innholdsfortegnelse

1. Åpne en fil
2. Lese en fil
3. Skrive en fil
4. Lukke en fil
5. Lese og skrive strenger til en fil
6. Les og skriv binære filer i C

Før vi diskuterer hver operasjon i detalj, kan vi ta et enkelt C-program:

Et enkelt C-program for å åpne, lese og lukke filen

I det ovennevnte programmet åpner vi en fil newfile.txt i r -modus, leser innholdet i filen og viser den på konsollen. kan vi forstå hver operasjon i detalj:

Åpne en fil

fopen() -funksjonen brukes til å åpne en fil.
Syntaks:

FILE pointer_name = fopen ("file_name", "Mode");

pointer_name kan være noe av din valg.
file_name er navnet på filen du vil åpne. Spesifiser hele stien her som «C: \\ myfiles \\ newfile.txt».

Når du åpner en fil, må du spesifisere modusen. Modusen vi bruker for å lese en fil er «r ”Som er» skrivebeskyttet modus «.
for eksempel:

FILE *fp;fp = fopen("C:\\myfiles\\newfile.txt", "r");

Adressen til det første tegnet er lagret i pointer fp.

Hvordan sjekker jeg om filen har åpnet vellykket?
Hvis filen ikke åpnes vellykket, vil pekeren tildeles en NULL-verdi, slik at du kan skrive logikken slik :
Denne koden vil sjekke om filen har åpnet seg vellykket eller ikke. Hvis filen ikke åpnes, vil dette vise en feilmelding til brukeren.

..FILE fpr;fpr = fopen("C:\\myfiles\\newfile.txt", "r");if (fpr == NULL){ puts("Error while opening file"); exit();}

Ulike filåpningsmodi:

Filen åpnes ved hjelp av fopen() -funksjonen, mens du åpner, kan du bruke en av følgende modus i henhold til kravet.
Mode «r»: Det er en skrivebeskyttet modus, som betyr at hvis filen åpnes i r-modus, vil den ikke tillate deg å skrive og endre innholdet i den. Når fopen() åpner en fil vellykket, returnerer den adressen til første tegn i filen, ellers returnerer den NULL.

Mode «w»: Det er en skriving eneste modus. Funksjonen fopen() oppretter en ny fil når den spesifiserte filen ikke eksisterer, og hvis den ikke åpner filen, returnerer den NULL.

Mode » a ”: Bruk av denne modusen Innhold kan legges til på slutten av en eksisterende fil. I likhet med modus «w» oppretter fopen() en ny fil hvis filen ikke eksisterer. Når den ikke lykkes, returnerer den NULL.
File Pointer peker på: siste tegn i filen .

Mode «r +»: Denne modusen er den samme som mode «r», men du kan utføre forskjellige operasjoner på filen som er åpnet i denne modusen. Du har lov til å lese, skrive og endre innholdet i filen åpnet i «r +» -modus.
File Pointer peker på: Filens første tegn.

Mode «w +»: Samme som modus «w» bortsett fra operasjoner som kan utføres; filen kan leses, skrives og endres i denne modusen.
Mode «a +»: Samme som mode «a»; Du kan lese og legge til dataene i filen, men innholdsendring er ikke tillatt i denne modusen.

Lesing av en fil

For å lese filen, må vi først åpne den med av modusen, for eksempel hvis du bare vil lese filen og deretter åpne den i «r» -modus. Basert på modusen som ble valgt under filåpningen, har vi lov til å utføre visse operasjoner på filen.

C Program for å lese en fil

fgetc (): Denne funksjonen leser tegnet fra gjeldende pekerposisjon og flytter pekeren til neste tegn i filen etter vellykket lesing. Når pekerne når til slutten av filen , denne funksjonen returnerer EOF (End of File). Vi har brukt EOF i vårt program for å bestemme slutten av filen.

Skrive til en fil

For å skrive filen, vi må åpne filen i en modus som støtter skriving. Hvis du for eksempel åpner en fil i «r» -modus, vil du ikke kunne skrive filen da «r» er skrivebeskyttet modus som bare tillater lesing.

Eksempel: C Program for skriving filen

Dette programmet ber brukeren om å skrive inn et tegn og skriver tegnet på slutten av filen. Hvis filen ikke eksisterer, vil dette programmet opprette en fil med det angitte navnet og skrive inntastingstegnet i filen.

Lukke en fil

fclose(fp);

Funksjonen fclose () brukes til å lukke en åpnet fil. Som argument må du oppgi en peker til filen du vil lukke.

Et eksempel for å vise Åpne, lese, skrive og lukke operasjon i C

Hvordan lese / skrive (I / O) Strenger i filer – fgets & fputs

Her vil vi diskutere hvordan du kan lese og skrive strenger i en fil.

char *fgets(char *s, int rec_len, FILE *fpr)

s: Array of characters to store strings.
rec_len: Lengden på inndataposten.
fpr: Peker til inndatafilen.
La oss ta et eksempel:

Eksempel på å lese strengene fra en fil i C-programmering

I eksemplet ovenfor har vi brukt fgets fungerer slik:

fgets(str, 10, fpr)

Her representerer strengen (array of char) som du lagrer strengen i etter å ha lest den fra filen.
10 er lengden på strengen som må leses hver gang.
fpr er peker til fil, som kommer til å bli lest.

Hvorfor brukte jeg if (fgets (str, 10, fpr) == NULL som en logikk for å bestemme slutten av filen?
I eksemplene ovenfor har vi brukt ch == EOF for å bli kjent med slutten av filen. Her har vi brukt denne logikken fordi fgets returnerer NULL når det ikke er flere poster som er tilgjengelige å lese .

C Program – Skriver streng til en fil

int fputs ( const char * s, FILE * fpw );

char *s char.
FILE *fpw – Pekeren (av FILE-type) til filen, som skal skrives.

fputs tar to argumenter –

fputs(str, fpw)

str – str representerer matrisen der strengen er lagret.
fpw – FILE-peker til utdatafilen, der posten må skrives.

Pek på merknad om innganger:
fputs legger som standard ikke til nye linjer etter å ha skrevet hver post, for å gjøre det manuelt – du kan ha følgende utsagn etter hver skriving til filen.

fputs("\n", fpw);

C FIL I / O for binære filer

Så langt har vi lært filoperasjoner på tekstfiler, hva om filene er binære (for eksempel .exe-fil). Ovennevnte programmer fungerer ikke for binære filer, men det er en mindre endring i håndteringen av binære filer. Hovedforskjellen er filnavnet & -modus. La oss forstå dette ved hjelp av et eksempel. La oss si at jeg har to binære filer bin1.exe & bin2.exe – Jeg vil kopiere innholdet av bin1.exe til bin2.exe:

Eksempel: Lesing og skrive binære filer i C

Merk: Filåpningsmodus er «rb» og «wb» i stedet for «r» & «w» ..

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *