Documente Academic
Documente Profesional
Documente Cultură
1. Deschiderea fişierului
Deschiderea unui fişier înseamnă stabilirea unui nume logic pentru fişier şi precizarea modului de
utilizare a fişierului: intrare (citire), ieşire (scriere) sau intrare/ieşire (citire/scriere). Deschiderea unui
fişier C++ se realizează legându-l de un flux de date (stream). Un stream este o entitate logică ce
produce sau primeşte informaţie. Pentru fişiere există trei tipuri de stream-uri: de intrare (din clasa
ifstream), de ieşire (din clasa ofstream) şi de intrare/ieşire (din clasa fstream). Pentru a putea utiliza
fluxurile de date pentru fişiere trebuie inclus fişierul header fstream astfel: #include<fstream>
Declararea fluxurilor de date pentru fişiere text se realizează astfel:
A) Pentru citire:
ifstream id_nume_logic_fisier(nume_fizic_fisier);
sau
fstream id_nume_logic_fisier( nume_fizic_fisier, ios::in); unde:
B) Pentru scriere:
ofstream id_nume_logic_fisier(nume_fizic_fisier);
sau
fstream id_nume_logic_fisier(nume_fizic_fisier, ios::out);
unde:
o id_nume_logic_fisier, nume_fizic_fisier,ios:: au aceeasi semnificatie ca mai sus. o
out – constanta ce precizeaza ca fisierul este deschis pentru scriere.
C) fstream id_nume_logic_fisier(nume_fizic_fisier, ios::app);
unde:
o id_nume_logic_fisier, nume_fizic_fisier,ios:: au aceeasi semnificatie ca mai sus; o
app – precizeaza ca fisierul este deschis pentru adaugare.
2. Citirea/scrierea datelor
3. Închiderea fişierului
Exemplu: f.close();
Aplicatia 1: Sa se citeasca doua numere a si b din fisierul text input.txt si sa se afiseze suma lor in fisierul
output.txt.
#include <iostream>
#include <fstream>
int main()
{
int a,b,i;
ifstream f("input.txt");
ofstream g("output.txt");
f>>a>>b;
for(i=a%2==0?a:a+1;i<=b;i+=2)
g<<i<<" ";
f.close();
g.close();
return 0;
}
Aplicația 3
Se considera un fisier input.txt ce contine numere intregi. Sa se afiseze numarul de elemente din fișier.
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int k=0,n;
ifstream f("input.txt");
ofstream g("output.txt");
while(f>>n)
k++;
g<<k;
f.close();
g.close();
return 0;
}
VARIANTA 11 2020 – III.3
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
unsigned int x,y,k;
ifstream f("bac.txt");
f>>x;
k=1;//k numara de cate ori apare numarul
while(f>>y)
{
if(x!=y)
{
cout<<x<<" "<<k<<" ";
k=1;
}
else k++;
x=y;
}
cout<<x<<" "<<k<<" ";
f.close();
return 0;
}