
//
// To jest przykładowy kod z podrozdziału 11.3.3 „Pozycjonowanie w plikach” książki 
// "Programowanie. Teoria i praktyka z wykorzystaniem C++" Bjarne'a Stroustrupa.
//

#include "std_lib_facilities.h"

//------------------------------------------------------------------------------

int main()
try
{
    string name = "Podrozdział.11.3.3.w";
    fstream fs(name.c_str());    // Otwiera w trybie do odczytu i zapisu.
    if (!fs) error("Nie można otworzyć pliku ",name);

fs.seekg(5);    // Przesuwa pozycję odczytu (g od „get” — pobierz) do 5 (szósty znak).
char ch;
fs>>ch;         // Odczytuje i zwiększa indeks pozycji odczytu.
cout << "znak [6] to " << ch << '(' << int(ch) << ")\n";

fs.seekp(1);    // Przesuwa pozycję zapisu (p od „put” — wstawianie) do 1.
fs<<'y';        // Zapisuje i zwiększa numer pozycji zapisu.

}
catch (exception& e) {
    cerr << "Błąd: " << e.what() << '\n'; 
    return 1;
}
catch (...) {
    cerr << "Nieznany wyjątek.\n"; 
    return 2;
}

//------------------------------------------------------------------------------
