
//
// To jest przykładowy kod z podrozdziału 11.3.1 „Tryby otwierania plików” książki 
// "Programowanie. Teoria i praktyka z wykorzystaniem C++" Bjarne'a Stroustrupa.
//

#include <fstream>

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

using namespace std;

int main()
{
    const char* name  = "myfile0";
    const char* name1 = "myfile1";
    const char* name2 = "myfile2";

    ofstream of1(name1);    // stosuje domyślny tryb ios_base::out
    ifstream if1(name2);    // stosuje domyślny tryb ios_base::in

    ofstream ofs(name, ios_base::app);            // strumienie ofstream pracują domyślnie w trybie out
    fstream fs("myfile", ios_base::in|ios_base::out); // in i out

    if (!fs)
    {
        // Nie dało się otworzyć pliku w ten sposób.
    }

    ifstream ifs("redungs");
    if (!ifs)
    {
        // Błąd: nie można otworzyć pliku „readings” w trybie do odczytu.
    }

    {
        ofstream ofs("nie-ma-takiego-pliku");        // Utworzy nowy plik o nazwie nie-ma-takiego-pliku.
        ofstream ifs("nie-ma-pliku-o-takiej-nazwie"); // Błąd: strumień ifs będzie w innym stanie niż good().
    }
}

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