miercuri, 30 martie 2016

Fisiere in C++

Pentru a putea efectua diferite operatii cu si in fisiere avem nevoie de biblioteca <fstream.h> .
1) Citirea din fisier
Sa spunem ca vrem sa citim dintr-un fisier un numar x. Fisierul se numeste „nr.txt”, trebuie sa-l cream si sa introducem in el numarul x.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <fstream>
#include <conio>
using namespace std;
int main()
{
ifstream f("nr.txt");
int x;
f>>x;
f.close();
cout<<"numarul citit din fisier este: "<<x;
getch();
return 0;
}
Observati acel ifstream f(„nr.txt”); Putem spune ca ifstream este instructiunea de citire din fisier. Forma generala este:
ifstream variabila_fisier(„numefisier.extensie”);
Variabila_fisier este in cazul nostru f.
Fisierul:
nr
Va afisa cu ajutorul codului de mai sus:
afis_fis
Observati ca am inchis fisierul cu f.close( ) . De obicei, este bine sa inchidem fisierele imediat ce am terminat lucrul cu ele.
Am putea declara fisierele si asa:
fstream f(„nr.txt”,ios::in);
Am utilizat ifstream pentru datele de intrare,sa vedem cum sta treaba si cu datele de iesire:
2) Scrierea intr-un fisier
Vrem sa citim un numar de la tastatura si sa-l bagam in fisierul out.txt. Avem urmatorul cod:
?
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream g("out.txt");
int n;
cout<<"Dati numarul: ";cin>>n;
g<<n;
g.close();
return 0;
}
Forma este ofstream variabila_fisier(„nume.extensie”); In cazul nostru, variabila_fisier este g.
nr5
In fisierul „out.txt” va aparea:
fis_out
Putem scrie si cu :
fstream g(„out.txt”,ios::out);
Pentru a scrie in fisier nu este nevoie sa-l cream.Va fi creat automat.
Acestea au fost principalele functii legate de fisiere, sa vedem si structurile de date:
3) Vectori si fisiere
Vom citi din fisierul „vect.in” numarul de elemente (care se afla pe prima linie),apoi elementele din vector.Le vom afisa si apoi vom introduce in fisierul „vect.out” numai elementele.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
include <iostream>
#include <fstream>
#include <conio>
using namespace std;
int main()
{
ifstream f("vect.in");
ofstream g("vect.out");
int v[100],n,i;
f>>n;
for (i=0;i<n;i++)
f>>v[i];
f.close();
for (i=0;i<n;i++)
cout<<v[i]<<" ";
for (i=0;i<n;i++)
g<<v[i]<<" ";
g.close();
getch();
return 0;
}
Fisier de intarare:
int_fis
Afisare:
afis
Fisier de iesire:
out_fis1
4) Matrice si fisiere
Vrem sa citim din fisierul „mat.in” o matrice.Pe prima linie se afla numarul de linii si numarul de coloane (exact in aceasta ordine), iar pe urmatoarele m linii elementele matricei. Vom afisa numarul de linii si coloane,precum si elementele matricei. Apoi vom introduce numarul in matricea din fisierul „mat.out”.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <fstream>
#include <conio>
using namespace std;
int main()
{
ifstream f("mat.in");
ofstream g("mat.out");
int a[10][10],i,j,m,n;
f>>m>>n;
for (i=0;i<m;i++)
for (j=0;j<n;j++)
f>>a[i][j];
f.close();
cout<<"nr de linii: "<<m<<endl;
cout<<"nr de coloane: "<<n<<endl;
for (i=0;i<m;i++)
{
for (j=0;j<n;j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
for (i=0;i<m;i++)
{
for (j=0;j<n;j++)
{
g<<a[i][j]<<" ";
}
g<<endl;
}
g.close();
getch();
return 0;
}
Fisier de intrare:
in_mat
Afisare:
afis_mat
Fisier de iesire:
out_mat
5) Struct si fisiere
Vom citi din fisierul „copil.in” numarul de copii (pe prima linie,n), numele,prenumele,varsta,clasa si vom afisa numele celui mai mic copil.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <stdio>
#include <conio>
#include <fstream.h>
using namespace std;
int main()
{
ifstream f("copil.in");
struct copil
{
char nume[10],prenume[10];
int varsta,clasa;
}e[3];
int i,min,k,n;
f>>n;
for (i=0;i<n;i++)
f>>e[i].nume>>e[i].prenume>>e[i].varsta>>e[i].clasa;
 
f.close();
min = e[0].varsta;
for (i=1;i<3;i++)
if (e[i].varsta<min) min=e[i].varsta;
cout<<"min="<<min<<endl;
for (i=0;i<3;i++)
if (min==e[i].varsta) cout<<"Cel mai mic copil: "<<e[i].nume<<" "<<e[i].prenume;
getch();
return 0;
}
Fisier intrare:
STRUCT_COPIL
Afisare:
DATE_OUT

Niciun comentariu:

Trimiteți un comentariu