PRACA Z PLIKIEM
Jeśli chcemy zapisywać do plików lub czytać z nich, to mamy do dyspozycji następujące klasy:
ofstream - (output file stream) - zapis do plików,
ifstream - (input file stream) - odczytywanie z plików,
fstream - (file stream) - zapis do plików i odczytywanie z plików.
Aby móc posłużyć się tymi klasami należy do programu włączyć plik nagłówkowy
#include <fstream>
Nazwy deklarowane w tym pliku są umieszczane w przestrzeni nazw std,
dlatego warto zastosować dyrektywę: using namespace std;
Klasa ofstream jest pochodną klasy ostream,
klasa ifstream jest pochodną klasy istream,
klasa fstream jest pochodną klasy iostream.
Aby czytać z pliku (lub zapisywać do pliku) należy:
zdefiniować strumień, czyli wykreować obiekt klasy ifstream, ofstream lub fstream,
podać strumieniowi, z jakim konkretnie plikiem ma się komunikować i otworzyć ten plik,
przeprowadzić żądane operacje we/wy,
zlikwidować strumień, gdy uznamy, że praca z plikiem jest zakończona.
Poniższy program obrazuje przedstawiony tok pracy z plikiem:
#include <iostream>
#include <vcl>
#include <fstream>
using namespace std;
int main()
{
ofstream osrodek;
osrodek.open(”ksiezyc.tmp”);
osrodek << ”misja”;
osrodek.close();
system(”pause”);
return 0;
}
FLAGI STANU BŁĘDU STRUMIENIA
goodbit - stan ten występuje wtedy, gdy wszystkie bity stanu błędów są wyzerowane;
eofbit - flaga ta ustawiana jest wtedy, gdy podczas czytania napotkany został koniec pliku (EOF);
failbit - ustawienie tej flagi oznacza, że jakaś operacja we/wy nie powiodła się. Strumień tkwi w stanie błędu, jednak po wyzerowaniu tej flagi nadal nadaje się do pracy;
badbit - ustawienie tej flagi oznacza, że nastąpił jakiś poważny błąd naruszający budowę samego strumienia. Dalsza praca z tym strumieniem jest niemożliwa.
FUNKCJE DO PRACY NA FLAGACH BŁĘDU
Funkcje te informują nas o stanie strumienia.
bool good();
funkcja ta zwraca wartość true, jeśli wszystko jest w porządku, czyli żaden z bitów błędu nie jest ustawiony;
bool eof();
funkcja ta zwraca wartość true, jeśli przy operacji wczytywania napotkany został koniec pliku;
bool fail();
funkcja ta zwraca wartość true, gdy podczas pracy strumienia wystąpił jakiś błąd (niezależnie czy poważny czy błahy);
bool bad();
funkcja ta zwraca wartość true, gdy strumień został poważnie uszkodzony (zepsuty).
2