Obsługa plików
Do obsługi plików używamy biblioteki fstream
, która również znajduje się w <bits/stdc++.h>
Odczyt danych
fstream plik;
int liczba;
plik.open("dane.txt",ios::in);
if(plik.good()){
while(!plik.eof()&&plik>>liczba){
cout<<liczba<<endl;
}
}
else
cout<<"ERROR PLIKU";
plik.close();
fstream plik
tworzy zmienną potrzebną do obsługi plikówplik.open("dane.txt",ios::in);
otwiera plik dane.txt do odczytu (żeby zapisywać należyios::in
zamienić naios::out
)if(plik.good())
sprawdza, czy plik został poprawnie otworzonyplik.eof()
zwróci prawdę, gdy dotrzemy do końca plikuplik>>liczba
wczytuje zawartość pliku do zmiennej liczba. Działa to tak samo jakcin>>
a zatem czyta to aż do białego znaku. Ta linijka umieszczona w warunku sprawdza, czy cokolwiek zostało odczytane.plik.close();
zamyka plik. jest to BARDZO ważne
Zapis danych
Zapisujemy analogicznie do cin>>
fstream plik1;
plik1.open("danewyjsciowe.txt",ios::out);
plik1<<"To jest test zapisu"<<endl<<"1234"<<endl<<5678;
plik1.close();
Jeśli wcześniej istniał plik o takiej nazwie to zostanie on usunięty i nadpisany
Getline
Jeśli chcemy odczytać całą linię z pliku tekstowego do zmiennej używamy polecenia getline
analogicznie do kożystania z niego z cin
fstream plik;
string sliczba;
plik.open("test.txt", ios::in);
if(plik.good()){
while(!plik.eof()){
getline(plik,sliczba);
if(sliczba!="")
cout<<sliczba;
}
}
else
cout<<"Blad pliku";