Sunteți pe pagina 1din 3

TEMA 1

Tipul de date fișier. Instrucțiuni de citire și afișare a datelor

Uneori, anumite probleme impun citirea datelor de intrare dintr-un fisier in loc de a fi citite de la
tastatura, respectiv scrierea intr-un fisier in locul afisarii rezultatelor direct pe ecran. Spre deosebire
de cazul in care datele rezultate dintr-un program sunt afisate pe ecran, redirectionarea acestora
catre un fisier aduce avantajul ca aceste rezultate pot fi salvate si stocate in vederea unor consultari
ulterioare.
Pentru a putea accesa lucrul cu fisiere intr-un program este nevoie sa avem declarata directiva
fstream: :

#include <fstream>

In lucrul cu fisiere se pot efectua urmatoarele operatii:


 deschiderea fisierelor
 inchiderea fisierelor
 citirea datelor din fisiere
 scrierea datelor in fisiere

1. Deschiderea fisierelor
Pentru a putea opera intr-un fisier, acesta trebuie deschis. Deschiderea unui fisier se face astfel:

 Pentru citire - valorile stocate in fisier vor fi citite in vederea prelucrarii:

ifstream <alias_fisier>("<nume_fisier>");
sau
fstream <alias_fisier>("<nume_fisier>",ios::in);
unde:
 alias_fisier - reprezinta numele cu care este recunoscut fisierul in cadrul programului
 nume_fisier - reprezinta numele fizic al fisierului pe disc
 ifstream - reprezinta streamul de intrare
 fstream - reprezinta streamul general - poate fi utilizat atat pentru citirea cat si pentru
scrierea din/in fisier

Exemplu:
ifstream f>("test.txt");
fstream f>("test.txt",ios::in);

 Pentru scriere - valorile rezultate in urma prelucrarii vor fi scrise in fisier:

ofstream <alias_fisier>("<nume_fisier>");
sau
fstream <alias_fisier>("<nume_fisier>",ios::out);
unde:
 alias_fisier - reprezinta numele cu care este recunoscut fisierul in cadrul programului
 nume_fisier - reprezinta numele fizic al fisierului pe disc
 ifstream - reprezinta streamul de intrare
 fstream - reprezinta streamul general - poate fi utilizat atat pentru citirea cat si pentru
scrierea din/in fisier
Exemplu:
ofstream f>("testare.txt");
fstream f>("test.txt",ios::out);

2. Inchiderea fisierelor
Dupa terminarea operatiilor de intrare/iesire cu fisierele utilizare, acestea trebuiesc inchise, inainte
de iesirea din program. Acest lucru se realizeaza astfel:

<alias_fisier>.close();
unde:
 alias_fisier - reprezinta numele cu care este recunoscut fisierul in cadrul programului
 close - functia cu care se inchide fisierul

Exemplu:
f.close();

3. Citirea datelor din fisiere


Acest lucru se realizeaza astfel:

<alias_fisier> >> <nume_var>;


unde:
 alias_fisier - reprezinta numele cu care este recunoscut fisierul in cadrul programului
 nume_var - numele variabilei in care urmeaza a se stoca valoarea citita din fisier

Exemplu:
f>>a;
f>>a[i];

4. Scrierea datelor in fisiere


Acest lucru se realizeaza astfel:

<alias_fisier> << <nume_var>;


unde:
 alias_fisier - reprezinta numele cu care este recunoscut fisierul in cadrul programului
 nume_var - numele variabilei in care urmeaza a se stoca valoarea citita din fisier

Exemplu:
f<<a;
f<<a[i];

Fisiere text – o structura de date prin intermediul careia este organizata informatia pe harddisk.
Un fisier de text este o colectie de linii de text terminate printr-un caracter special EOL (End of Line
– sau sfârșit de linie). Sfârșitul fișierului este specificat în fișierul text prin alt caracter special
denumit EOF.

Operatiile de citire/scriere (intrare/ieșire) în C++ se realizeaza prin streamuri. Streamurile pot fi


clasificate în:
 streamuri standard
 streamuri folosind fișiere
 streamuri folosind memoria
De exemplu streamul standard de intrare de la tastatură este cin. De asemenea streamul standard
pentru ieșirea pe ecran este cout. Obiectele cin și cout sunt declarate în biblioteca <iostream>.
Începând cu tema de azi vom utiliza o nouă bibliotecă de lucru cu fișiere <fstream>.

Aceasta se realizează asemănător operațiilor de citire și scriere din streamurile standard de


intrare/ieșire (cin și cout) dar utilizând propriile streamuri asociate fișierelor.

1. Exemplu citire:

#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("fisier.in");
int main(){
int a;
fin >> a;// citirea numarului a din fisierul fisier.in
cout << "Ai citit a = " << a;
return 0;
}

Observatie:
 Pentru separarea valorilor dintr-un fișier se utilizeaza spatiul sau linia noua.
 Valorile preluate dintr-un fișier text pot fi orice tip de date cunoscute de noi: numere,
caractere, siruri de caractere, s.a.m.d.

2. Exemplu afisare:

#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("fisier.in");
ofstream fout("fisier.out");
int main(){
int a, b;
fin >> a >> b;
fout << a << " + " << b << " = " << a + b;
return 0;
}

Notă:
 În fișier s-a scris pe rând valoarea din variabila a, apoi șirul de caractere ” + „ valoarea din b,
alt șir de caractere ” = ” și finalul este suma celor doua variabile.

Observație:
 Trebuie să aveți grijă că fișierele voastre (respectiv „fisier.in” și „fisier.out”) să se afle în
același folder cu fișierul vostru principal .cpp.

S-ar putea să vă placă și