Rad s datotekama
Svaki veći program mora komunicirati s datotekama. Mora moći zapisivati podatke u datoteku i kasnije ih ispisivati iz datoteke. Koja je svrha našeg programa ako nema bazu podataka koju može nadopunjavati i kojom se može služiti za operacije koje mi želimo.
Zamislite program koji kategorizira našu kolekciju filmskih DVD-a. Ako naš program ne bi mogao zapisivati nove DVD-ove u datoteku i kasnije nam ih pokazivati, taj program nema nikakve šanse kod krajnjeg korisnika.
Program koji će ispisivati niz koji unesemo u datoteku:
#include<iostream>
#include<fstream> Za rad s datotekama potrebno je uključiti fstream biblioteku
using namespace std;
int main()
{
int niz[20],k,x;
ofstream izlaz("datoteka.txt"); Naredbom ofstream deklariramo ispis u dato-
cin>>k; teku, mi smo odabrali riječ izlaz ali to je
for (x=0;x<k;x++) proizvoljno, kao i naziv datoteke.
{
cin>>niz[x];
}
for (x=0;x<k;x++)
{
izlaz<<niz[x]<<endl; Kao i naredba cout, izlaz ovdje označava
} ispis, jedina razlika je u mjestu ispisa,cout
system("PAUSE"); ispisuje u onaj mali crni prozor, a izlaz
return 0; u datoteku.
}
Nakon što pokrenemo svoj program u datoteci u kojoj se on nalazi trebala bi se pojaviti TXT datoteka naziva datoteka. Nakon što ju otvorimo trebao bi se otvoriti notepad ili Microsoft Word u koje će biti ispisani brojevi koje smo unijeli u svome programu.
Program koji ispisuje niz brojeva iz datoteke:
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
int niz[20],k,x;
ifstream ulaz("datoteka.txt"); Naredbom ifstream deklariramo ulaz podataka,
cin>>k; riječ za unos je proizvoljna, mi smo odabrali
for (x=0;x<k;x++) riječ ulaz, a naziv datoteke mora biti isti
{ imenu datoteke iz koje unosimo niz.
ulaz>>niz[x];
}
for (x=0;x<k;x++)
{
cout<<niz[x]<<endl; Pomoću ovoga ispisujemo niz na zaslon.
}
system("PAUSE");
return 0;
}
Program koji sortira brojeve iz jedne datoteke u drugu:
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
int niz[20],k,x,privremeni;
ofstream izlaz("datoteka1.txt");
ifstream ulaz("datoteka.txt");
cin>>k;
for (x=0;x<k;x++)
{
ulaz>>niz[x];
cout<<niz[x];
}
for(x=0;x<k-1;x++)
{
if(niz[x]<niz[x+1])
{
privremeni=niz[x];
niz[x]=niz[x+1];
niz[x+1]=privremeni;
}
}
for (x=0;x<k;x++)
{
izlaz<<niz[x];
izlaz<<" ";
cout<<niz[x];
}
system("PAUSE");
return 0;
}
Program koji sprema riječ u datoteku:
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
string rijec;
ofstream izlaz("datoteka2.txt");
cin>>rijec;
izlaz<<rijec;
system("PAUSE");
return 0;
}