Darbas su failais
Darbas su failais
Dirbti su duomenimis vien per konsolę ne visada pakanka - dažnai prisireikia duomenis išsaugoti ilgesniam laikui arba nuskaityti jau esamą failą. Čia mums gali pagelbėti C++ biblioteka fstream
. Šiame skyriuje apsiribosime tik darbu su tekstiniais failais, tačiau galima dirbti su įvairių tipų formatais.
Pasirengimas darbui su failais
Norint išnaudoti failų skaitymo / rašymo funkcijas, būtinai reikia į savo programą prisidėti biblioteką fstream
. Tai galima padaryti programos pradžioje įrašius eilutę
Tai padarius, programoje galėsime kurti reikiamo tipo kintamuosius. Konkrečiai mus domina du tipai: ifstream
ir ofstream
.
Įvestis ir išvestis su ifstream
ir ofstream
Biblioteka fstream
pateikia dvi klases, reikalingas darbui su failais - ifstream
ir ofstream
. Pirmoji (ifstream
) naudojama duomenis nuskaitant iš failo, o antroji (ofstream
) - įrašant į failą. Darbas su failais susideda iš trijų dalių:
- Failo atidarymas
- Darbas su failu
- Failo uždarymas
Tarkime, turime tokį uždavinį: faile duomenys.txt
yra įrašyti du sveikieji skaičiai. Užduotis - parašyti programą, kuri nuskaito šiuos skaičius ir išveda jų sumą į failą rezultatai.txt
. Šį uždavinį sprendžianti programa:
PASTABA. Failai duomenys.txt
bei rezultatai.txt
turi būti tame pačiame kataloge, kaip ir jūsų programa.
Kaip galima pastebėti, darbas su failais yra labai panašus į darbą su konsole - tereikia vietoj cin
ir cout
naudoti savo apsirašytus failų identifikatorius (šiuo atveju - fin
ir fout
). Svarbu tik nepamiršti šių dalykų:
- Nesumaišyti
ifstream
suofstream
.ifstream
skirtas duomenų nuskaitymui (nesi = input
), oofstream
- duomenų išvedimui (neso = output
). - Nurodyti failą, su kuriuo norime dirbti (t.y. rašant
ifstream fin ("failas.txt");
kai norime skaityti iš failo). - Baigus darbą su failu, nepamiršti failo uždaryti (įvykdyti kodą
failoIdentifikatorius.close()
). Neuždarius failo, jis gali likti “užrakintas” ir jo keisti / ištrinti gali nebeleisti operacinė sistema.