Fil I / O i C programmering med eksempler

I denne vejledning lærer vi, hvordan man udfører input / output (I / O) operationer på en fil ved hjælp af C programmeringssprog.

C Fil I / O – Indholdsfortegnelse

1. Åbning af en fil
2. Læsning af en fil
3. Skrivning af en fil
4. Lukning af en fil
5. Læsning og skrivning af strenge til en fil
6. Læsning og skrivning af binære filer i C

Før vi diskuterer hver operation detaljeret, kan vi tage et simpelt C-program:

Et simpelt C-program til at åbne, læse og lukke filen

I ovenstående program åbner vi en fil newfile.txt i r -tilstand, læser indholdet af filen og viser det på konsollen. lader os forstå hver operation i detaljer:

Åbning af en fil

fopen() funktion bruges til at åbne en fil.
Syntaks:

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

pointer_name kan være noget af din valg.
file_name er navnet på filen, som du vil åbne. Angiv den fulde sti her som “C: \\ myfiles \\ newfile.txt”.

Når du åbner en fil, skal du angive tilstanden. Den tilstand, vi bruger til at læse en fil, er “r ”Som er” skrivebeskyttet tilstand “.
for eksempel:

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

Adressen til det første tegn er gemt i pointer fp.

Hvordan kontrolleres det, om filen er åbnet med succes?
Hvis filen ikke åbnes, får markøren en NULL-værdi, så du kan skrive logikken sådan :
Denne kode kontrollerer, om filen er åbnet med succes eller ej. Hvis filen ikke åbnes, vises der en fejlmeddelelse til brugeren.

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

Forskellige filåbningsmetoder:

Filen åbnes ved hjælp af fopen() -funktionen, mens du åbner, kan du bruge en af følgende tilstande i henhold til kravet.
Mode “r”: Det er en skrivebeskyttet tilstand, hvilket betyder, at hvis filen åbnes i r-tilstand, giver den dig ikke mulighed for at skrive og ændre indholdet af den. Når fopen() åbner en fil med succes, returnerer den adressen til filens første tegn, ellers returnerer den NULL.

Mode “w”: Det er en skrivning kun tilstand. Funktionen fopen() opretter en ny fil, når den angivne fil ikke findes, og hvis den ikke åbner filen, returnerer den NULL.

Mode ” a ”: Brug af denne tilstand Indhold kan tilføjes i slutningen af en eksisterende fil. Ligesom tilstand “w” opretter fopen() en ny fil, hvis den ikke findes. Ved mislykket åbning returnerer den NULL.
Filmarkør peger på: sidste tegn i filen .

Tilstand “r +”: Denne tilstand er den samme som tilstand “r”, men du kan udføre forskellige handlinger på den fil, der er åbnet i denne tilstand. Du har lov til at læse, skrive og ændre indholdet af filen åbnet i “r +” -tilstand.
Filmarkør peger på: Filens første tegn.

Tilstand “w +”: Samme som tilstand “w” bortset fra handlinger, der kan udføres; filen kan læses, skrives og ændres i denne tilstand.
Mode “a +”: Samme som mode “a”; du kan læse og tilføje dataene i filen, men indholdsændring er ikke tilladt i denne tilstand.

Læsning af en fil

For at læse filen skal vi først åbne den ved hjælp af i tilstanden, for eksempel hvis du kun vil læse filen og derefter åbne den i “r” -tilstand. Baseret på den tilstand, der er valgt under filåbning, har vi lov til at udføre visse handlinger på filen.

C Program til at læse en fil

fgetc (): Denne funktion læser tegnet fra den aktuelle markørs position og efter en vellykket læsning flytter markøren til næste tegn i filen. Når markørerne når til slutningen af filen , denne funktion returnerer EOF (slutningen af fil). Vi har brugt EOF i vores program til at bestemme slutningen af filen.

Skrivning til en fil

For at skrive filen, vi skal åbne filen i en tilstand, der understøtter skrivning. Hvis du f.eks. åbner en fil i “r” -tilstand, kan du ikke skrive filen, da “r” er skrivebeskyttet tilstand, der kun tillader læsning.

Eksempel: C Program til skrivning filen

Dette program beder brugeren om at indtaste et tegn og skriver det tegn i slutningen af filen. Hvis filen ikke findes, opretter dette program en fil med det angivne navn og skriver inputtegnet i filen.

Lukning af en fil

fclose(fp);

Funktionen fclose () bruges til at lukke en åbnet fil. Som et argument skal du give en markør til den fil, du vil lukke.

Et eksempel til at vise Åbne, læse, skrive og lukke operation i C

Sådan læses / skrives (I / O) Strenge i filer – fgets & fputs

Her vil vi diskutere, hvordan man læser og skriver strenge i en fil.

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

s: Matrix med tegn til lagring af strenge.
rec_len: Indgangspostens længde.
fpr: Markør til inputfilen.
Lad os tage et eksempel:

Eksempel på at læse strengene fra en fil i C-programmering

I ovenstående eksempel har vi brugt fgets som sådan:

fgets(str, 10, fpr)

Her repræsenterer strengen (array af char), hvor du lagrer strengen efter at have læst den fra fil.
10 er længden af strengen, der skal læses hver gang.
fpr er pointer til fil, som skal læses.

Hvorfor brugte jeg if (fgets (str, 10, fpr) == NULL som en logik til at bestemme slutningen af filen?
I ovenstående eksempler har vi brugt ch == EOF til at lære slutningen af filen at kende. Her har vi brugt denne logik, fordi fgets returnerer NULL, når der ikke er flere poster, der er tilgængelige til at blive læst .

C Program – Skriv streng til en fil

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

char *s char.
FILE *fpw – Markør (af FILE-typen) til filen, der skal skrives.

fputs tager to argumenter –

fputs(str, fpw)

str – str repræsenterer det array, hvor strengen er gemt.
fpw – FILE-markør til outputfilen, hvor posten skal skrives.

Punkt til bemærkning om fputs:
fputs tilføjer som standard ikke nye linjer efter at have skrevet hver post for at gøre det manuelt – du kan have følgende udsagn efter hver skrivning til filen.

fputs("\n", fpw);

C FIL I / O for binære filer

Indtil videre har vi lært filhandlinger på tekstfiler, hvad hvis filerne er binære (såsom .exe-fil). Ovenstående programmer fungerer ikke for binære filer, men der er en mindre ændring i håndteringen af binære filer. Den største forskel er filnavnet &. Lad os forstå dette ved hjælp af et eksempel. Lad os sige, at jeg har to binære filer bin1.exe & bin2.exe – Jeg vil kopiere indholdet af bin1.exe til bin2.exe:

Eksempel: Læsning og skrivning af binære filer i C

Bemærk: Filåbningstilstande er “rb” og “wb” i stedet for “r” & “w” ..

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *