I / O fișiere C: creați, deschideți, citiți, scrieți și închideți un fișier

C Gestionarea fișierelor

Un fișier poate fi utilizat pentru a stoca un volum mare de date persistente. Ca multe alte limbi, „C” oferă următoarele funcții de gestionare a fișierelor,

  1. Crearea unui fișier
  2. Deschiderea unui fișier
  3. Citirea unui fișier
  4. Scrierea într-un fișier
  5. Închiderea unui fișier

Următoarele sunt cele mai importante funcții de gestionare a fișierelor disponibile în „C”,

funcție scop
fopen () Crearea unui fișier sau deschiderea unui fișier existent
fclose () Închiderea unui fișier
fprintf () Scrierea unui bloc de date într-un fișier
fscanf () Citirea unui blocați datele dintr-un fișier
getc () Citește un singur caracter dintr-un fișier
putc () Scrie un singur caracter într-un fișier
getw () Citește un număr întreg dintr-un fișier
putw () Scrierea unui număr întreg într-un fișier
fseek () Setează poziția unui pointer de fișier la o locație specificată
ftell () Returnează poziția curentă a un indicator de fișier
rewind () Setează indicatorul de fișier la începutul unui fișier

În acest tutorial, veți afla-

  • Cum să creați un fișier
  • Cum să închideți un fișier:
  • Scrierea într-un fișier
    • Funcția fputc ():
    • Funcția fputs ():
    • fprintf () Funcție:
  • Citirea datelor dintr-un fișier
  • Citirea și scrierea interactivă a fișierelor cu getc și putc

Cum să creați un fișier

Ori de câte ori doriți să lucrați cu un fișier, primul pas este să creați un fișier. Un fișier nu este altceva decât spațiu într-o memorie în care sunt stocate date.

Pentru a crea un fișier într-un program „C” se utilizează următoarea sintaxă,

FILE *fp;fp = fopen ("file_name", "mode");

În sintaxa de mai sus, fișierul este un structura de date care este definită în biblioteca standard.

fopen este o funcție standard care este utilizată pentru a deschide un fișier.

  • Dacă fișierul nu este prezent pe sistem, atunci acesta este creat și apoi deschis.
  • Dacă un fișier este deja prezent pe sistem, atunci este deschis direct folosind această funcție.

fp este un indicator al fișierului care indică fișierul tip.

Ori de câte ori deschideți sau creați un fișier, trebuie să specificați ce veți face cu fișierul. Un fișier în programarea „C” poate fi creat sau deschis în scopuri de citire / scriere. Un mod este utilizat pentru a specifica dacă doriți să deschideți un fișier pentru oricare dintre scopurile de mai jos. Următoarele sunt diferitele tipuri de moduri în programarea „C” care pot fi utilizate în timp ce lucrați cu un fișier.

Mod fișier Descriere
r Deschideți un fișier pentru citire. Dacă un fișier este în modul de citire, atunci nu sunt șterse date dacă un fișier este deja prezent pe un sistem.
w Deschideți un fișier pentru scriere. Dacă un fișier este în modul de scriere, atunci se creează un fișier nou dacă un fișier nu există deloc. Dacă un fișier este deja prezent pe un sistem, atunci toate datele din fișier sunt trunchiate și sunt deschise pentru scriere scopuri.
a Deschideți un fișier în modul de adăugare. Dacă un fișier este în modul de adăugare, atunci fișierul este deschis. Conținutul din fișier nu se schimbă.
r + deschis pentru citire și scriere de la început
w + deschis pentru citire și scriere, suprascrierea unui fișier
a + deschis pentru citire și scriere, anexare la fișier

În sintaxa dată, numele fișierului și modul sunt specificate ca șiruri, prin urmare trebuie să fie întotdeauna încadrate între ghilimele duble.

Exemplu:

#include <stdio.h>int main() {FILE *fp;fp = fopen ("data.txt", "w");}

Ieșire:

Fișierul este creat în același folder în care ați salvat codul .

Puteți specifica calea în care doriți să creați fișierul

#include <stdio.h>int main() {FILE *fp;fp = fopen ("D://data.txt", "w");}

Cum se închide un fișier

Ar trebui să închideți întotdeauna un fișier ori de câte ori se termină operațiunile din fișier. Înseamnă că conținutul și linkurile către fișier sunt încheiate. Acest lucru previne deteriorarea accidentală a fișierului.

„C” oferă funcția fclose pentru a efectua operația de închidere a fișierelor. Sintaxa lui fclose este următoarea,

fclose (file_pointer);

Exemplu:

FILE *fp;fp = fopen ("data.txt", "r");fclose (fp);

The fclose funcția ia ca indicator un pointer de fișier. Fișierul asociat cu indicatorul fișierului este apoi închis cu ajutorul funcției fclose.Întoarce 0 dacă închiderea a reușit și EOF (sfârșitul fișierului) dacă a apărut o eroare la închiderea fișierului.

După închiderea fișierului, același indicator al fișierului poate fi folosit și cu alte fișiere.

În programarea „C”, fișierele se închid automat la terminarea programului. Închiderea manuală a unui fișier scriind funcția fclose este o bună practică de programare.

Scrierea într-un fișier

În C, atunci când scrieți într-un fișier, trebuie adăugate în mod explicit caractere de linie nouă „\ n”.

Biblioteca stdio oferă funcțiile necesare pentru a scrie într-un fișier:

  • fputc (char, file_pointer): scrie un caracter în fișierul indicat de file_pointer.
  • fputs (str, file_pointer): scrie un șir în fișierul indicat de file_pointer.
  • fprintf (file_pointer, str, variable_lists): tipărește un șir în fișierul indicat de file_pointer. Șirul poate include opțional specificatori de format și o listă de variabile liste_variabile.

Programul de mai jos arată cum să efectuați scrierea într-un fișier:

fputc () Funcție:

Ieșire:

Programul de mai sus scrie un singur caracter în fișierul fputc_test.txt până când ajunge la următorul simbol de linie „\ n” care indică faptul că propoziția a fost scrisă cu succes. Procesul constă în preluarea fiecărui caracter al tabloului și înscrierea acestuia în fișier.

  1. În programul de mai sus, am creat și deschis un fișier numit fputc_test.txt într-un mod de scriere și declarăm șirul nostru care va fi scris în fișier.
  2. Facem o operație de scriere caracter cu caracter folosind bucla pentru și punem fiecare caracter în fișierul nostru până la „\ n „caracterul este întâlnit, apoi fișierul este închis utilizând funcția fclose.

fputs () Funcție:

OUTPUT:

  1. În programul de mai sus, am creat și deschis un fișier numit fputs_test.txt într-un mod de scriere.
  2. După ce efectuăm o operație de scriere folosind funcția fputs (), scriind trei șiruri diferite
  3. Apoi fișierul este închis utilizând funcția fclose.

fprintf () Funcție:

OUTPUT:

  1. În programul de mai sus am creat și deschis un fișier numit fprintf_test.txt într-un mod de scriere.
  2. După efectuarea unei operații de scriere folosind funcția fprintf () prin scrierea unui șir, fișierul este închis utilizând funcția fclose.

Citirea datelor dintr-un fișier

Există trei funcții diferite dedicate citirii datelor dintr-un fișier

  • fgetc (file_pointer): returnează următorul caracter din fișierul indicat de indicatorul de fișier. Când s-a ajuns la sfârșitul fișierului, EOF este trimis înapoi.
  • fgets (buffer, n, file_pointer): citește n-1 caractere din fișier și stochează șirul într-un buffer în care caracterul NULL „\ 0” este atașat ca ultimul caracter.
  • fscanf (file_pointer, conversion_specifiers, variable_adresses): este folosit pentru a analiza și analiza datele. Citește caractere din fișier și atribuie intrarea unei liste de indicatori variabile adrese variabile folosind specificatori de conversie. Rețineți că, ca și în cazul scanf, fscanf încetează să citească un șir atunci când se întâlnește spațiu sau linie nouă.

Următorul program demonstrează citirea din fișierul fputs_test.txt folosind fgets (), fscanf () și funcții fgetc (), respectiv:

Rezultat:

  1. În programul de mai sus, am deschis fișierul numit „fprintf_test.txt” care a fost scris anterior folosind funcția fprintf () și conține șirul „Învățarea C cu Guru99”. L-am citit folosind funcția fgets () care citește rând cu rând, unde dimensiunea buffer-ului trebuie să fie suficientă pentru a gestiona întreaga linie.
  2. Redeschidem fișierul pentru a reseta fișierul pointer la punctul de la începutul fişier. Creați diferite variabile de șiruri pentru a gestiona fiecare cuvânt separat. Imprimați variabilele pentru a le vedea conținutul. Fscanf () este utilizat în principal pentru a extrage și analiza date dintr-un fișier.
  3. Redeschideți fișierul pentru a reseta fișierul pointer pentru a indica la începutul fișierului. Citiți datele și imprimați-le din fișierul caracter cu caracter folosind funcția getc () până când se întâlnește instrucțiunea EOF. / li>

Citire și scriere de fișiere interactive cu getc și putc

Acestea sunt cele mai simple operații de fișiere. Getc reprezintă caracterul get, iar putc reprezintă caracterul put. Aceste două funcții sunt utilizate pentru a gestiona doar un singur caracter odată.

Programul următor demonstrează funcțiile de gestionare a fișierelor în programarea „C”:

Ieșire:

  1. În programul de mai sus am am creat și deschis un fișier numit demo într-un mod de scriere.
  2. După efectuarea unei operații de scriere, fișierul este închis folosind funcția fclose.
  3. Am deschis din nou un fișier care conține acum date într-un mod de citire. O buclă while se va executa până când se găsește eof. Odată găsit sfârșitul fișierului, operațiunea va fi terminată și datele vor fi afișate folosind funcția printf.
  4. După efectuarea unei operații de citire, fișierul este din nou închis folosind funcția fclose.

Rezumat

  • Un fișier este un spațiu dintr-o memorie în care sunt stocate datele.
  • „C „programarea oferă diverse funcții pentru a face față unui fișier.
  • Un mecanism de manipulare a fișierelor se numește gestionarea fișierelor.
  • Un fișier trebuie deschis înainte de a efectua operații pe acesta.
  • Un fișier poate fi deschis într-un mod de citire, scriere sau adăugare.
  • Funcțiile Getc și putc sunt utilizate pentru a citi și scrie un singur caracter.
  • funcția fscanf () permite citirea și analizarea datelor dintr-un fișier
  • Putem citi (folosind funcția getc) un întreg fișier prin looping pentru a acoperi tot fișierul până când se întâlnește EOF > Putem scrie într-un fișier după crearea numelui său, utilizând funcția fprintf () și trebuie să aibă newl caracter ine la sfârșitul textului șir.

Lasă un răspuns

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