Sunteți pe pagina 1din 7

Fişiere text in C++

Un fișier text este o colecție de linii de text de lungimi diferite terminate cu ‘\n’
- fiecare linie este o secvență de caractere ASCII (coduri ASCII memorate pe
1 octet)
- Sfârșitul fișierului este delimitat de un caracter special eof (end of file) care
poate fi testat de funcția corespunzătoare, cu sintaxa f.eof()
- La deschiderea fișierului acestuia i se asociază o informație suplimentară
pointer de fișier prin care se reține poziția curentă în fișier. Fiecare operație
deplasează corespunzător pointerul de fișier
- Operațiile de citire/scriere construiesc cu ajutorul limbajului fluxuri de date
care vor fi conectate la fișier
- Fișierele cin și cout sunt fișiere text predefinite asociate cu tastatura și
minitorul. Implementarea fluxurilor de date către acestea sunt incluse în
biblioteca <iostream>
Pentru lucrul cu fişiere text in C++ se adaugă o bibliotecă standard si anume
<fstream>. Această bibliotecă lucrează cu fluxuri (stream-uri) :
ifstream – flux de intrare
ofstream – flux de iesire
fstream – are ambele caracteristici (ifstream si ofstream)
Opreaţiile care se efectuează, în general, cu fisiere text sunt:
- deschidrea unui fisier text
- închiderea unui fisier text
- citirea datelor dintr-un fisier text
- scrierea datelor intr-un fisier text
- adăugarea datelor într-un fişier text
Operații specifice fișierelor

I. DESCHIDEREA UNUI FISIER TEXT


Pentru a putea efectua operaţii cu un fişier text acesta trebuie mai
intâi deschis.
Astfel se pot folosi unul din obiectele ifstream(pentru citire) sau
ofstrem(pentru scriere) din/în fisier.
ifstream f(“date.in"); //s-a deschis fisierul pentru citire SAU
fstream f("fis.in",ios::in);
- Citirea se poate face cu operatorul de citire >>
ofstream f(“date.out"); //s-a deschis fisierul pentru scriere SAU
fstream f("fis.in",ios::out);
- Scrierea se face cu operatorul <<
fstream f(“date.txt",ios::app); // s-a deschis fisierul pentru adăugare

II. ÎNCHIDEREA UNUI FISIER TEXT


Se realizează cu ajutolul funcţiei:
f.close();
Funcții standard utile pentru operarea cu fișiere text
Funcția Efectul
f.eof() Returnează 1 atunci când poziția pointerului de fișier este pe
caracterul care marchează sfârșitul fișierului eof(end of file)
f.get(x) Pentru declarația char x; va extrage în x următorul caracter
din fișier, inclusiv caracterul ‘\n’ (sfârșitul de linie)
Atunci când s-a ajuns la sfârșitul fișierului funcția returnează 0
f.peek() Returnează următorul caracter din fluxul de intrare fără a-l
extrage din stream
f.putback(x) Pune la loc în stream-ul de intrare ultimul caracter exras în x
f.good(); f.bad(); Toate verifică succesul\eșecul ultimei operații cu fișierul și
f.fail() returneză un rezultat 0/1 corespunzător
f.get(a, n, ’d’) Pentru declarația char a[100]; va extrage în a caractere până
s-a atins sfrâșitul de linie, sau sfârșitul de fișier, sau am citit n
caractere în sir, sau am ajuns la delimitatorul ‘d’
f.getline(a,n,’d’) La fel ca și funcția membru anterioară doar că extrage în
string și caracterul ‘\n’
f.close() Închide fișierul text
Citirea datelor dintr-un fisier text in care se gasesc numere scrise pe
mai multe rânduri.
#include<iostream>
#include<fstream>
#include<conio.h>
void main() {
clrscr();
int v[100],i=0,j=0,n;
fstream f("fis.in", ios::in); //s-a deschis fisierul pentru citire
//o altă varianta ar fi fost: ifstream f("fis.in");
while(!f.eof()) // cât timp nu s-a ajuns la sfârşitul fisierului text
{
i++;
f>>v[i]; //se citeste din fisier caracter cu caracter
}
n=i;
for(i=1;i<=n;i++)
cout<<v[i]<<" "; // se afişează fiecare element din vector
f.close(); // se închide fisierul
getche(); //se asteapta apasarea unei taste
}
SCRIEREA DATELOR INTR-UN FISIER TEXT
Fisierul în care dorim să scriem textul va fi suprascrie la fiecare execuţie a
programului. Secvenţa de program este următoarea:

#include<iostream>
#include<fstream>
#include<conio.h>
void main()
{
clrscr();
int v[100],i=0,j=0,n;
fstream f("fis.in", ios::out); //s-a deschis fisierul pentru scriere
//o altă varianta ar fi fost: ofstream g("fis.out");
for(i=1;i<j;i++)
g<<v[i]; // se scrie din vector in fişier
g.close(); // se închide fisierul
getche();
}
ADĂUGAREA DATELOR ÎNTR-UN FIŞIER TEXT
Secvenţa de program este următoarea:

#include<iostream>
#include<fstream>
#include<conio.h>
void main()
{
clrscr();
int v[100],i=0,j=0,n;
fstream h("fis.out",ios::app); //s-a deschis fisierul pentru adaugare
for(i=1;i<j;i++)
h<<v[i]; // se scrie(adauga) din vector in fişier
h.close(); // se închide fisierul
getche();
}

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