Toate utilitarele necesare pentru accesarea fisierelor text din programe C++ se afla in biblioteca fstream
Pentru a putea accesa un fişier text dintr-un program C++ trebuie declarata o variabila, astfel :
- ifstream-declarare stream de intrare(numai pentru operatii de citire)
- ofstream-declarare stream de iesire(numai pentru operatii de scriere)
- fstream-declarare stream de intrare/iesire (in care se pot realiza atat operatii de citire, cat si operatii de scriere)
Exemplu:ifstream f("intrare.txt");
initializare variabila de acces, la declarare
ofstream g("iesire.txt");
Cand ne hotarâm sa nu mai accesam fisierul va trebui sa-l "inchidem". De fapt, distrugem legatura logica intre variabila declarata pentru accesarea fisierului si zona de pe disc unde se gaseste fisierul.
Exemplu: f.close(); g.close();
Afisarea in fisier
Se face la fel ca si afisarea pe ecran numai ca metoda cout se inlocuieste cu numele variabilei de acces la fisier.
Exemplu:
g<<23<’’ ’’;
g<<"Hello World"<<endl;
Citirea din fisier
Operatorul >> permite citirea datelor in variabila de orice tip, fara insa a trata caracterele albe
( spatii, salturi la linie noua ).
Citirea se face similar celei de la tastatura numai ca se inlocuieste metoda cin cu variabila de acces la fisier.
f>>x unde x e o variabila
Crearea unui fisier text in CodeBlocks:
Pasul 1: File-->New-->Empty File
Pasul 2: Yes(Add file to project)
Pasul 3: Salvam fisierul nou creat cu numele dorit si extensia .txt(selectam la extensii All files)
Pasul 4: Multiple Sellection(bifam debug si release)-->OK
Pasul 5:Completam fisierul cu date asa cum cere enuntul problemei
Pasul 6: Rulam programul (F9) moment in care programul preia datele din fisierul de intrare
Deschiderea unui fisier text in CodeBlocks: File-->Open-->dublu click pe fisierul dorit
Daca fisierul nu e in directorul curent se da calea.
Exemple
Se considera fisierul text cifre.txt care contine pe o singura linie si separate prin spatii 10 numere intregi de maxim 4 cifre fiecare. Sa se afiseze intr-un altfisier rezultat.txt suma acestor numere.
#include <iostream>
#include<fstream>
using namespace std;
int main()
{
int x; long s=0;
ifstream f("cifre.txt");
ofstream g("rezultat.txt");
int i;
for(i=1;i<=10;i++) {
f>>x; s=s+x; }
f.close();
g<<"suma este="<<s;
g.close();
return 0;
}