Fișier I / O în programare C cu exemple

În acest ghid, vom învăța cum să efectuăm operațiuni de intrare / ieșire (I / O) pe un fișier folosind limbajul de programare C.

I / O fișier C – Cuprins

1. Deschiderea unui fișier
2. Citirea unui fișier
3. Scrierea unui fișier
4. Închiderea unui fișier
5. Citirea și scrierea șirurilor într-un fișier
6. Citirea și scrierea fișierelor binare în C

Înainte de a discuta fiecare operațiune în detaliu, să luăm un program C simplu:

Un program C simplu pentru a deschide, citi și închide fișierul

În programul de mai sus, deschidem un fișier newfile.txt în modul r, citind conținutul fișierului și afișând pe consolă. permite să înțelegem fiecare operație în detaliu:

Deschiderea unui fișier

fopen() funcția este utilizată pentru deschiderea unui fișier.
Sintaxă:

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

pointer_name poate fi orice choice.
file_name este numele fișierului pe care doriți să îl deschideți. Specificați aici calea completă, cum ar fi „C: \\ myfiles \\ newfile.txt”.

În timp ce deschideți un fișier, trebuie să specificați modul. Modul pe care îl folosim pentru a citi un fișier este „r ”Care este„ modul numai citire ”.
de exemplu:

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

Adresa primului caracter este stocată în pointer fp.

Cum se verifică dacă fișierul s-a deschis cu succes?
Dacă fișierul nu se deschide cu succes, pointerului i se va atribui o valoare NULL, astfel încât să puteți scrie logica astfel :
Acest cod va verifica dacă fișierul s-a deschis cu succes sau nu. Dacă fișierul nu se deschide, acesta va afișa un mesaj de eroare către utilizator.

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

Diverse moduri de deschidere a fișierelor:

Fișierul este deschis utilizând funcția fopen(), în timp ce deschideți puteți utiliza oricare dintre următoarele moduri conform cerințelor.
Mod „r”: Este un mod numai de citire, ceea ce înseamnă că dacă fișierul este deschis în modul r, nu vă va permite să scrieți și să modificați conținutul acestuia. Când fopen() deschide un fișier cu succes, acesta returnează adresa primului caracter al fișierului, altfel returnează NULL.

Modul „w”: este o scriere numai modul. Funcția fopen() creează un fișier nou atunci când fișierul specificat nu există și dacă nu reușește să deschidă fișierul, atunci returnează NULL.

Mod ” a ”: Utilizarea acestui mod Conținutul poate fi adăugat la sfârșitul unui fișier existent. Ca și modul „w”, fopen() creează un fișier nou dacă fișierul nu există. La deschiderea nereușită, returnează NULL.
Pointerul fișierului indică: ultimul caracter al fișierului .

Mod „r +”: Acest mod este același cu modul „r”; totuși puteți efectua diverse operații pe fișierul deschis în acest mod. Aveți permisiunea de a citi, scrie și modifica conținutul fișierului deschis în modul „r +”.
File Pointer indică către: Primul caracter al fișierului.

Modul „w +”: La fel ca modul „w” în afară de operații, care pot fi efectuate; fișierul poate fi citit, scris și modificat în acest mod.
Modul „a +”: La fel ca modul „a”; puteți citi și adăuga datele din fișier, însă modificarea conținutului nu este permisă în acest mod.

Citirea unui fișier

Pentru a citi fișierul, trebuie să îl deschidem mai întâi folosind orice a modului, de exemplu, dacă doriți doar să citiți fișierul, apoi deschideți-l în modul „r”. Pe baza modului selectat în timpul deschiderii fișierului, ni se permite să efectuăm anumite operații pe fișier.

C Programă pentru citirea unui fișier

fgetc (): Această funcție citește caracterul din poziția curentă a indicatorului și la citirea cu succes mută indicatorul la următorul caracter din fișier. Odată ce indicatorii ajung la sfârșitul fișierului , această funcție returnează EOF (End of File). Am folosit EOF în programul nostru pentru a determina sfârșitul fișierului.

Scrierea într-un fișier

Pentru a scrie fișierul, vom trebuie să deschideți fișierul într-un mod care acceptă scrierea. De exemplu, dacă deschideți un fișier în modul „r”, nu veți putea scrie fișierul deoarece „r” este doar modul de citire care permite doar citirea.

Exemplu: C Program de scris fișierul

Acest program cere utilizatorului să introducă un caracter și scrie acel caracter la sfârșitul fișierului. Dacă fișierul nu există, acest program va crea un fișier cu numele specificat și va scrie caracterul de intrare în fișier.

Închiderea unui fișier

fclose(fp);

Funcția fclose () este utilizată pentru închiderea unui fișier deschis. Ca argument, trebuie să furnizați un indicator către fișierul pe care doriți să-l închideți.

Un exemplu pentru a afișa operația Deschidere, citire, scriere și închidere în C

Cum se citește / scrie (I / O) Șiruri în fișiere – fgets & fputs

Aici vom discuta despre modul de citire și scriere a șirurilor într-un fișier.

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

s: Matrice de caractere pentru stocarea șirurilor.
rec_len: Lungimea înregistrării de intrare.
fpr: Pointer către fișierul de intrare.
Să luăm un exemplu:

Exemplu pentru a citi șirurile dintr-un fișier din programarea C

În exemplul de mai sus am folosit funcția fgets astfel:

fgets(str, 10, fpr)

Aici str reprezintă șirul (matrice de caractere) în care stocați șirul după ce îl citiți din fișier.
10 este lungimea șirului care trebuie să fie fi citit de fiecare dată.
fpr este indicatorul către fișier, care urmează să fie citit.

De ce am folosit if (fgets (str, 10, fpr) == NULL ca logică pentru a determina sfârșitul a fișierului?
În exemplele de mai sus, am folosit ch == EOF pentru a cunoaște sfârșitul fișierului. Aici am folosit această logică deoarece fgets returnează NULL când nu mai sunt înregistrări disponibile pentru a fi citite .

Program C – Scrierea șirului într-un fișier

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

char *s – Matrice de char.
FILE *fpw – Pointer (de tip FILE) către fișier, care urmează să fie scris.

fputs ia două argumente –

fputs(str, fpw)

str – str reprezintă matricea, în care este stocat șirul.
fpw – indicatorul FILE la fișierul de ieșire, în care înregistrarea trebuie să fie scrisă.

Punct de notat despre intrări:
intrările implicite nu adaugă linie nouă după scrierea fiecărei înregistrări, pentru a face acest lucru manual – puteți avea următoarea declarație după fiecare scriere în fișier.

fputs("\n", fpw);

C FILE I / O pentru fișiere binare

Până acum, am învățat operațiile de fișiere pe fișiere text, ce se întâmplă dacă fișierele sunt binare (cum ar fi fișierul .exe). Programele de mai sus nu vor funcționa pentru fișiere binare, cu toate acestea există o modificare minoră în gestionarea fișierelor binare. Diferența principală este numele fișierului &. Să înțelegem acest lucru cu ajutorul unui exemplu. Să spunem că am două fișiere binare bin1.exe & bin2.exe – Vreau să copiez conținutul bin1.exe în bin2.exe:

Exemplu: Citire și Scrierea fișierelor binare în C

Notă: Modurile de deschidere a fișierelor sunt „rb” și „wb” în loc de „r” & „w” ..

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *