Sunteți pe pagina 1din 5

Fiiere in C++

Un fiier este o colecie de date indicat printr-un nume i o extensie. Numele este
desparit de extensie prin punct.
Avantajul lucrului cu fisiere este evident, datele rezultate n urma execuiei unui
programputnd fi salvate.
n esen, exist doua tipuri de fisiere: fisiere text si fisiere binare. Un fiier text
conine text (cifre si caractere) iar un fisier binar poate conine si imagini, baze de date, etc.
Vomstudia lucru cu fisere text.
Pentru lucrul cu fiiere text in C++ se adaug o bibliotec standard si anume
<fstream.h>. Aceast bibliotec lucreaz cu fluxuri (stream-uri) :
ifstream flux de intrare
ofstream flux de iesire
fstream are ambele caracteristici (ifstreamsi ofstream)
Opreaiile 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
- adugarea datelor ntr-un fiier text

Pentru o mai bun nelegere ne propunem s exemplificm rezolvarea urmtoarei
situaii: Fie fiierul text fis.in n care sunt scrise numere pe mai multe rnduri. Se cere:
- citirea datelor din fiierul text ntr-un vector si afiarea lor
- scrirea datelor citite in fisierul text fis.out;
- adugarea datelor citite anterior in acelai fiier fis.out
Pentru aceasta vom parcurge urmtoarele etape:


I. DESCHIDEREA UNUI FISIER TEXT
Pentru a putea efectua operaii cu un fiier text acesta trebuie mai inti deschis.
Astfel se pot folosi unul din obiectele ifstream(pentru citire) sau ofstrem(pentru
scriere) din/n fisier.
ifstreamf("fis.in"); //s-a deschis fisierul pentru citire SAU
fstreamf("fis.in",ios::in);
ofstreamf("fis.in"); //s-a deschis fisierul pentru scriere SAU
fstreamf("fis.in",ios::out);
fstreamf("fis.in",ios::app); // s-a deschis fisierul pentru adugare
II. NCHIDEREA UNUI FISIER TEXT
Se realizeaz cu ajutolul funciei:
f.close();
III. CITIREA DATELOR DINTR-UN FISIER TEXT
Vom folosi astfel urmtoarea secven de program:
#include<iostream.h>
#include<fstream.h>
#include<conio.h>

void main()
{
clrscr();
int v[100],i=0,j=0,n;

fstreamf("fis.in", ios::in); //s-a deschis fisierul pentru citire
//o alt varianta ar fi fost: ifstreamf("fis.in");
while(!f.eof()) // ct timp nu s-a ajuns la sfritul fisierului text
{
i++;
f>>v[i]; //se citeste din fisier caracter cu caracter
j++;
}
for(i=1;i<j;i++)
cout<<v[i]<<" "; // se afieaz fiecare element din vector
f.close(); // se nchide fisierul
getche();
}

Obs: Citirea datelor s-a fcut ntr-un vector, dintr-un fisier text in care se aflau
numere scrire pe mai multe rnduri.

IV. SCRIEREA DATELOR INTR-UN FISIER TEXT
Fisierul n care dorim s scriem textul va fi suprascrie la fiecare execuie a
programului. Secvena de program este urmtoarea:
#include<iostream.h>
#include<fstream.h>
#include<conio.h>

void main()
{
clrscr();
int v[100],i=0,j=0,n;

fstreamf("fis.in", ios::out); //s-a deschis fisierul pentru scriere
//o alt varianta ar fi fost: ofstreamg("fis.out");
for(i=1;i<j;i++)
g<<v[i]; // se scrie din vector in fiier
g.close(); // se nchide fisierul
getche();
}
V. ADUGAREA DATELOR NTR-UN FIIER TEXT
Secvena de program este urmtoarea:
#include<iostream.h>
#include<fstream.h>
#include<conio.h>

void main()
{
clrscr();
int v[100],i=0,j=0,n;

fstreamh("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 fiier
h.close(); // se nchide fisierul
getche();
}
VI. CITIREA DIN FISIER LINIE CU LINIE


#include <iostream>
#include <fstream>
using namespace std;
int main ()
{
char linie[100];
fstreamf("fis.in",ios::in);
while(f.get(linie,100))
{
cout<<linie<<endl;
f.get();
}
return 0;
}
VII. CITIREA SI SCRIEREA CARACTERELOR DIN/INTR-UN FISIER
//dintr-un fisier text se citeste o fraza. sa se afiseze in alt fisier frazas scr cu
majuscule.s

#include<iostream>
#include<fstream>
#include<conio.h>
#include <string.h>
using namespace std;
int main()
{
int i=0;
char a[100];
int i=0;
fstreamf("fis.in",ios::in);
fstreamg("fis.out",ios::out);
f.get(a,99);
strupr(a);
g<<a;
getch();
return 0;
}

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