Fișiere text: Definiție și operații specifice în C++

Fișiere text: Definiție și operații specifice în C++

Introducere

Fișierele text sunt o parte esențială a programării în C++. Ele permit stocarea și recuperarea datelor sub formă de caractere, oferind o modalitate convenabilă de a organiza și partaja informații.

Definiție

Un fișier text este o colecție de caractere organizate pe linii. Fiecare linie se termină cu un caracter special numit newline (\n). Fișierele text pot conține orice tip de caracter, inclusiv litere, cifre, simboluri și spații albe.

Operații specifice

C++ oferă o serie de operații specifice pentru manipularea fișierelor text.

Deschiderea unui fișier

Pentru a utiliza un fișier text, este necesar să îl deschideți mai întâi. Acest lucru se poate face folosind clasele ifstream (pentru citire) sau ofstream (pentru scriere) din biblioteca fstream.

C++

// Deschiderea unui fișier pentru citire
ifstream fin("fisier.in");

// Deschiderea unui fișier pentru scriere
ofstream fout("fisier.out");

Citirea din fișier

După deschiderea fișierului, se pot citi caractere individuale, linii întregi sau blocuri de date.

C++

// Citirea unui caracter
char c = fin.get();

// Citirea unei linii
string linie;
getline(fin, linie);

// Citirea unui bloc de date
char buffer[1024];
fin.read(buffer, 1024);

Scrierea în fișier

Se pot scrie caractere individuale, linii întregi sau blocuri de date.

C++

// Scrierea unui caracter
fout.put('c');

// Scrierea unei linii
fout << "Acesta este un exemplu de linie" << endl;

// Scrierea unui bloc de date
fout.write(buffer, 1024);

Închiderea fișierului

După finalizarea operațiunilor cu fișierul, este important să îl închideți pentru a elibera resursele sistemului.

C++

fin.close();
fout.close();

Exemple

Următoarele exemple demonstrează operațiile de bază cu fișiere text:

Exemplul 1: Citirea unui fișier text

C++

#include <iostream>
#include <fstream>

int main() {
  // Deschiderea fișierului pentru citire
  ifstream fin("fisier.in");

  // Citirea fiecărei linii din fișier și afișarea pe ecran
  string linie;
  while (getline(fin, linie)) {
    cout << linie << endl;
  }

  // Închiderea fișierului
  fin.close();

  return 0;
}

Exemplul 2: Scrierea unui fișier text

C++

#include <iostream>
#include <fstream>

int main() {
  // Deschiderea fișierului pentru scriere
  ofstream fout("fisier.out");

  // Scrierea mai multor linii în fișier
  fout << "Acesta este un exemplu de fișier text" << endl;
  fout << "Acesta este al doilea rând" << endl;

  // Închiderea fișierului
  fout.close();

  return 0;
}

Concluzie

Fișierele text sunt un instrument fundamental în programarea C++. Înțelegerea operațiunilor specifice cu fișiere text este esențială pentru a putea stoca și recupera date, a crea programe mai complexe și a facilita colaborarea cu alți programatori.

Operații avansate

Pe lângă operațiile de bază prezentate anterior, C++ oferă funcții suplimentare pentru manipularea fișierelor text:

  • Verificarea existenței unui fișier: Puteți folosi funcția exists din biblioteca <filesystem> pentru a verifica dacă un fișier există înainte de a încerca să îl deschideți.
  • Poziționarea cursorului: Puteți folosi funcțiile seekg și seekp pentru a plasa cursorul de citire/scriere la o anumită poziție din fișier.
  • Copierea fișierelor: Biblioteca fstream oferă funcția copy pentru copierea conținutului unui fișier în altul.
  • Renumarea fișierelor: Funcția rename din biblioteca <filesystem> permite redenumirea fișierelor.
  • Ștergerea fișierelor: Funcția remove din biblioteca <filesystem> permite ștergerea fișierelor.

Erori și gestionarea excepțiilor

Este important să gestionați corect erorile care pot apărea în timpul lucrului cu fișiere text. Puteți verifica starea de eroare a obiectelor ifstream și ofstream folosind metoda is_open. De asemenea, este recomandat să utilizați blocuri try-catch pentru a intercepta excepțiile și a trata erorile elegant.