Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Brak możliwości dodania "fstream plik;" do klasy

Ostatnio zmodyfikowano 2012-10-15 23:06
Autor Wiadomość
Unlimited
Temat założony przez niniejszego użytkownika
Brak możliwości dodania "fstream plik;" do klasy
» 2012-10-15 17:51:04
Oto mój kod:
C/C++
// Platforma: Windows (x32 & x64)
// Kompilator: GNU GCC
// Srodowisko: Code::Blocks 10.05
// Autor: XXX
// E-mail: XXX

#include <iostream> //podstawowa biblioteka do obslugi m.in. cout, cin
#include <fstream> //biblioteka do obslugi plików
#include <string> //biblioteka do obslugi lancuchów znaków
#include <cstdlib> //biblioteka do obslugi komend m.in. ( zatrzymanie programu, usuwanie pliku )
#include <vector> //biblioteka potrzebna do stworzenia nieskonczonej tablicy
using namespace std; //zadeklarowanie przestrzeni nazw

class books //glowna klasa programu
{
private:
    string autor, tytul, wydawnictwo, xautor, xtytul, xwydawnictwo, sciezka, fraza;
    int rok, strony, xrok, xstrony, ilosc, n, x, liczba, dol, gora;
    size_t ZnalezionaFraza;
    books( string xautor, string xtytul, string xwydawnictwo, int xrok, int xstrony );
    vector < books > ksiazka;
public:
    int wybor1, wybor2, wybor3;
    bool sprawdz;
    books();
    void clear();
    void header();
    void add_book();
    void edit_book();
    void remove_book();
    void search_autor();
    void search_tytul();
    void search_wydawnictwo();
    void search_rok();
    void search_strony();
    void view_all_books();
    void create_file();
    void remove_file();
    void load_file();
    void path_file();
    void view_path_file();
    void information();
};

books::books( string xautor, string xtytul, string xwydawnictwo, int xrok, int xstrony ) //konstruktor nr 1
    : autor( xautor )
    , tytul( xtytul )
    , wydawnictwo( xwydawnictwo )
    , rok( xrok )
    , strony( xstrony )
{
}

books::books() //konstruktor nr 2
{
    n = 0;
}

void books::clear() //czyszczenie buforu i flagi bledu
{
    cin.clear();
    cin.sync();
}

void books::header() //naglowek programu
{
    cout << "\t\t    Witaj w programie! Created by Unlimited!" << endl;
    cout << "\t\t       [ Projekt: zadanie domowe z PSiO ]" << endl << endl;
}

void books::add_book() //dodawanie ksiazki
{
    header();
    clear();
    cout << "Podaj tytul ksiazki: ";
    getline( cin, xtytul );
    cout << "Podaj autora: ";
    getline( cin, xautor );
    cout << "Podaj wydawnictwo ksiazki: ";
    getline( cin, xwydawnictwo );
    do
    {
        cout << "Podaj rok wydania: ";
        clear();
        cin >> xrok;
        sprawdz = cin.good();
    } while( sprawdz == false );
   
    do
    {
        cout << "Podaj ilosc stron: ";
        clear();
        cin >> xstrony;
        sprawdz = cin.good();
    } while( sprawdz == false );
   
    ksiazka.push_back( books( xautor, xtytul, xwydawnictwo, xrok, xstrony ) );
    n++;
    cout << endl << "Dodano pomyslnie!" << endl << endl;
    system( "pause" );
}

void books::edit_book() //edytowanie ksiazki
{
    header();
    if( n > 0 )
    {
        do
        {
            cout << "Podaj LP wpisu ksiazki: ";
            clear();
            cin >> x;
            sprawdz = cin.good();
        } while( sprawdz == false || x > n || x <= 0 );
       
        cout << endl << "Aktualne zestawienie: " << endl;
        cout << x << ". Tytul: " << ksiazka[ x - 1 ].tytul << endl;
        cout << "   Autor: " << ksiazka[ x - 1 ].autor << endl;
        cout << "   Wydawnictwo: " << ksiazka[ x - 1 ].wydawnictwo << endl;
        cout << "   Rok wydania: " << ksiazka[ x - 1 ].rok << endl;
        cout << "   Ilosc stron: " << ksiazka[ x - 1 ].strony << endl << endl;
        cout << "Podaj nowe zestawienie:" << endl;
        clear();
        cout << x << ". Tytul: ";
        getline( cin, ksiazka[ x - 1 ].tytul );
        cout << "   Autor: ";
        getline( cin, ksiazka[ x - 1 ].autor );
        cout << "   Wydawnictwo: ";
        getline( cin, ksiazka[ x - 1 ].wydawnictwo );
        do
        {
            cout << "   Rok wydania: ";
            clear();
            cin >> ksiazka[ x - 1 ].rok;
            sprawdz = cin.good();
        } while( sprawdz == false );
       
        do
        {
            cout << "   Ilosc stron: ";
            clear();
            cin >> ksiazka[ x - 1 ].strony;
            sprawdz = cin.good();
        } while( sprawdz == false );
       
        cout << endl << "Zedytowano pomyslnie!" << endl << endl;
    }
    else
    {
        cout << "Brak ksiazek!" << endl << endl;
    }
    system( "pause" );
}

void books::remove_book() //usuwanie ksiazki
{
    header();
    if( n > 0 )
    {
        do
        {
            cout << "Podaj LP wpisu ksiazki: ";
            clear();
            cin >> x;
            sprawdz = cin.good();
        } while( sprawdz == false || x > n || x <= 0 );
       
        x--;
        for(; x < n; x++ )
        {
            if( x != n - 1 )
            {
                ksiazka[ x ] = ksiazka[ x + 1 ];
            }
        }
        n--;
        cout << endl << "Usunieto pomyslnie!" << endl << endl;
    }
    else
    {
        cout << "Brak ksiazek!" << endl << endl;
    }
    system( "pause" );
}

void books::search_autor() //szukanie po autorze
{
   
}

void books::search_tytul() //szukanie po tytule
{
   
}

void books::search_wydawnictwo() //szukanie po wydawnictwie
{
   
}

void books::search_rok() //szukanie po roku wydania
{
   
}

void books::search_strony() //szukanie po zakresie stron
{
   
}

void books::view_all_books() //wyswietlanie wszystkich ksiazek
{
    header();
    if( n > 0 )
    {
        x = 1;
        for(; x <= n; x++ )
        {
            cout << x << ". Tytul: " << ksiazka[ x - 1 ].tytul << endl;
            cout << "   Autor: " << ksiazka[ x - 1 ].autor << endl;
            cout << "   Wydawnictwo: " << ksiazka[ x - 1 ].wydawnictwo << endl;
            cout << "   Rok wydania: " << ksiazka[ x - 1 ].rok << endl;
            cout << "   Ilosc stron: " << ksiazka[ x - 1 ].strony << endl << endl;
        }
    }
    else
    {
        cout << "Brak ksiazek!" << endl << endl;
    }
    system( "pause" );
}

void books::create_file() //tworzenie pliku z ksiazkami
{
    header();
    plik.open( sciezka.c_str(), ios::out );
    plik.close();
    if( plik.good() )
    {
        if( n > 0 )
        {
            plik.open( sciezka.c_str(), ios::out | ios::app );
            x = 1;
            for(; x <= n; x++ )
            {
                plik << ksiazka[ x - 1 ].tytul << endl;
                plik << ksiazka[ x - 1 ].autor << endl;
                plik << ksiazka[ x - 1 ].wydawnictwo << endl;
                plik << ksiazka[ x - 1 ].rok << endl;
                plik << ksiazka[ x - 1 ].strony << endl;
            }
            plik.close();
            cout << "Dane zostaly zapisane pomyslnie!" << endl << endl;
        }
        else
        {
            cout << "Brak ksiazek!" << endl << endl;
        }
    }
    else
    {
        cout << "Error! Nie udalo sie utworzyc pliku!" << endl << endl;
        cout << "Mozliwe bledy:" << endl;
        cout << "  - odnosnik do pliku nie zostal podany" << endl;
        cout << "  - odnosnik do pliku jest nieprawidlowy" << endl;
        cout << "  - brak odpowiednich uprawnien w systemie" << endl << endl;
    }
    system( "pause" );
}

void books::remove_file() //usuwanie pliku z ksiazkami
{
    remove( sciezka.c_str() );
}

void books::load_file() //wczytywanie ksiazek do programu
{
    header();
    plik.open( sciezka.c_str(), ios::in );
    plik.close();
    if( plik.good() )
    {
        n = 0;
        plik.open( sciezka.c_str(), ios::in );
        while( !plik.eof() )
        {
            getline( plik, xtytul );
            getline( plik, xautor );
            getline( plik, xwydawnictwo );
            plik >> xrok;
            plik >> xstrony;
            ksiazka.push_back( books( xautor, xtytul, xwydawnictwo, xrok, xstrony ) );
            n++;
        }
        plik.close();
        cout << "Wczytanie zakonczone sukcesem!" << endl << endl;
    }
    else
    {
        cout << "Error! Nie udalo sie otworzyc pliku!" << endl << endl;
        cout << "Mozliwe bledy:" << endl;
        cout << "  - plik nie istnieje" << endl;
        cout << "  - brak odpowiednich uprawnien w systemie" << endl << endl;
    }
    system( "pause" );
}

void books::path_file() //sciezka do pliku
{
    header();
    cout << "Uwaga!!! Pamietaj aby podac prawidlowa sciezke do pliku!" << endl;
    cout << "Podajac sama nazwe pliku np - plik.txt - dokument tekstowy" << endl;
    cout << "zostanie utworzony w katalogu z uruchomionym programem." << endl << endl;
    cout << "Podaj sciezke pliku z rozszerzeniem .txt: ";
    clear();
    getline( cin, sciezka );
}

void books::view_path_file() //pokazywanie sciezki do pliku
{
    header();
    cout << "Aktualna sciezka do pliku to: " << sciezka << endl << endl;
    system( "pause" );
}

void books::information() //dodatkowe informacje
{
    books::header();
    cout << "Wykonanie: XXX" << endl;
    cout << "Klasa: III bT (2012/2013)" << endl;
    cout << "Srodowisko: Code::Bloks 10.05" << endl;
    cout << "Kompilator: GNU GCC" << endl;
    cout << "E-mail: XXX" << endl << endl;
    cout << "Dodatkowe:" << endl;
    cout << "   + Program zabezpieczony jest przed 'niesfornym' uzytkownikiem" << endl;
    cout << "     i nie da sie go 'zcrashowac' np podajac litere badz wyraz" << endl;
    cout << "     do zmiennej 'int' (rok wydania, ilosc stron)." << endl;
    cout << "   + Program dostepny na platformy: Linux / Windows (x32, x64)" << endl;
    cout << "   + Nieograniczona tablica na ksiazki ( vector )" << endl;
    cout << "   + Mozliwe wczytywanie pliku z ksiazkami do programu" << endl;
    cout << "   - Program konsolowy. Byc moze niedlugo bedzie graficzny." << endl;
    cout << "   - Nie gwarantuje poprawnosci kodu zrodlowego programu z innymi" << endl;
    cout << "     kompilatorami niz w/w." << endl << endl;
    system( "pause" );
}

int main() //glowna czesc programu
{
    books book;
   
    do
    {
        do
        {
            system( "cls" );
            book.header();
            cout << "[1] Dodaj nowa ksiazke" << endl;
            cout << "[2] Edytuj ksiazke" << endl;
            cout << "[3] Usun ksiazke" << endl;
            cout << "[4] Wyswietl/Wyszukaj ksiazki" << endl;
            cout << "[5] Opcje" << endl;
            cout << "[6] Wykonanie/Kontakt" << endl;
            cout << "[0] Zakoncz" << endl << endl;
            cout << "Twoj wybor: ";
            book.clear();
            cin >> book.wybor1;
            book.sprawdz = cin.good();
            system( "cls" );
        } while( book.sprawdz == false );
       
        switch( book.wybor1 )
        {
        case 1:
            {
                book.add_book();
                break;
            }
        case 2:
            {
                book.edit_book();
                break;
            }
        case 3:
            {
                book.remove_book();
                break;
            }
        case 4:
            {
                do
                {
                    do
                    {
                        system( "cls" );
                        book.header();
                        cout << "[1] Szukaj - Tytul" << endl;
                        cout << "[2] Szukaj - Autor" << endl;
                        cout << "[3] Szukaj - Wydawnictwo" << endl;
                        cout << "[4] Szukaj - Rok wydania" << endl;
                        cout << "[5] Szukaj - Ilosc stron" << endl;
                        cout << "[6] Pokaz wszystkie" << endl;
                        cout << "[0] Powrot" << endl << endl;
                        cout << "Twoj wybor: ";
                        book.clear();
                        cin >> book.wybor2;
                        book.sprawdz = cin.good();
                        system( "cls" );
                    } while( book.sprawdz == false );
                   
                    switch( book.wybor2 )
                    {
                    case 1:
                        {
                            book.search_tytul();
                            break;
                        }
                    case 2:
                        {
                            book.search_autor();
                            break;
                        }
                    case 3:
                        {
                            book.search_wydawnictwo();
                            break;
                        }
                    case 4:
                        {
                            book.search_rok();
                            break;
                        }
                    case 5:
                        {
                            book.search_strony();
                            break;
                        }
                    case 6:
                        {
                            book.view_all_books();
                            break;
                        }
                    }
                } while( book.wybor2 );
               
                break;
            }
        case 5:
            {
                do
                {
                    do
                    {
                        system( "cls" );
                        book.header();
                        cout << "[1] Utworz plik z danymi" << endl;
                        cout << "[2] Usun plik z danymi" << endl;
                        cout << "[3] Podaj sciezke pliku" << endl;
                        cout << "[4] Zaladuj plik" << endl;
                        cout << "[5] Sprawdz aktualny odnosnik pliku" << endl;
                        cout << "[0] Powrot" << endl << endl;
                        cout << "Twoj wybor: ";
                        book.clear();
                        cin >> book.wybor3;
                        book.sprawdz = cin.good();
                        system( "cls" );
                    } while( book.sprawdz == false );
                   
                    switch( book.wybor3 )
                    {
                    case 1:
                        {
                            book.create_file();
                            break;
                        }
                    case 2:
                        {
                            book.remove_file();
                            break;
                        }
                    case 3:
                        {
                            book.path_file();
                            break;
                        }
                    case 4:
                        {
                            book.load_file();
                            break;
                        }
                    case 5:
                        {
                            book.view_path_file();
                            break;
                        }
                    }
                } while( book.wybor3 );
               
                break;
            }
        case 6:
            {
                book.information();
                break;
            }
        }
    } while( book.wybor1 );
   
    return 0; //zamkniecie programu
}

Dlaczego jak zadeklaruję w klasie
fstream plik;
 to wywala mi masę błędów ale chyba nie związanych z programem i do tego otwiera jakiś plik ios_base.h ?
P-66870
cyklopek11
» 2012-10-15 18:45:24
Z tego co "wyniuchałem" to obiekty iostream nie są kopiowalne (prywatny konstruktor kopiujący i operator przypisania). Myślę, że dlatego że jakbyś skopiował jakiś obiekt fstream file, i file byłby otwarty tylko do odczytu to inna część kodu po skopiowaniu mogłaby sobie kopie file otworzyć do zapisu i nieźle nabałaganić. Tak myślę, jeśli źle niech mnie ktoś poprawi. Na Twoim miejscu w klasie umieściłbym wskaźnik do fstream:

C/C++
...
fstream * file;
a na liście inicjalizacyjnej konstruktora Twojej klasy umieść alokację pamięci na obiekt fstream:
C/C++
...
books::books( string xautor, string xtytul, string xwydawnictwo, int xrok, int xstrony ) //konstruktor nr 1
    : autor( xautor )
    , tytul( xtytul )
    , wydawnictwo( xwydawnictwo )
    , rok( xrok )
    , strony( xstrony )
    , plik( new fstream )
W ten sposób kompilator będzie pewny, że nie będziesz się brał za kopiowanie strumieni :-)
P-66876
pekfos
» 2012-10-15 18:53:05
to wywala mi masę błędów
Jakich?
Jak chcesz mieć szybką odpowiedź, to nie utrudniaj..
P-66877
Unlimited
Temat założony przez niniejszego użytkownika
» 2012-10-15 19:07:54
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\bits\ios_base.h||In member function 'std::basic_ios<char, std::char_traits<char> >& std::basic_ios<char, std::char_traits<char> >::operator=(const std::basic_ios<char, std::char_traits<char> >&)':|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\bits\ios_base.h|793|error: 'std::ios_base& std::ios_base::operator=(const std::ios_base&)' is private|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|47|error: within this context|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd||In member function 'std::basic_istream<char, std::char_traits<char> >& std::basic_istream<char, std::char_traits<char> >::operator=(const std::basic_istream<char, std::char_traits<char> >&)':|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|53|note: synthesized method 'std::basic_ios<char, std::char_traits<char> >& std::basic_ios<char, std::char_traits<char> >::operator=(const std::basic_ios<char, std::char_traits<char> >&)' first required here |
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd||In member function 'std::basic_iostream<char, std::char_traits<char> >& std::basic_iostream<char, std::char_traits<char> >::operator=(const std::basic_iostream<char, std::char_traits<char> >&)':|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|59|note: synthesized method 'std::basic_istream<char, std::char_traits<char> >& std::basic_istream<char, std::char_traits<char> >::operator=(const std::basic_istream<char, std::char_traits<char> >&)' first required here |
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd||In member function 'std::basic_fstream<char, std::char_traits<char> >& std::basic_fstream<char, std::char_traits<char> >::operator=(const std::basic_fstream<char, std::char_traits<char> >&)':|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|87|note: synthesized method 'std::basic_iostream<char, std::char_traits<char> >& std::basic_iostream<char, std::char_traits<char> >::operator=(const std::basic_iostream<char, std::char_traits<char> >&)' first required here |
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\streambuf||In member function 'std::basic_filebuf<char, std::char_traits<char> >& std::basic_filebuf<char, std::char_traits<char> >::operator=(const std::basic_filebuf<char, std::char_traits<char> >&)':|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\streambuf|778|error: 'std::basic_streambuf<_CharT, _Traits>& std::basic_streambuf<_CharT, _Traits>::operator=(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char, _Traits = std::char_traits<char>]' is private|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|78|error: within this context|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd||In member function 'std::basic_fstream<char, std::char_traits<char> >& std::basic_fstream<char, std::char_traits<char> >::operator=(const std::basic_fstream<char, std::char_traits<char> >&)':|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|87|note: synthesized method 'std::basic_filebuf<char, std::char_traits<char> >& std::basic_filebuf<char, std::char_traits<char> >::operator=(const std::basic_filebuf<char, std::char_traits<char> >&)' first required here |
C:\Users\Unlimited\Desktop\projekt.cpp||In member function 'books& books::operator=(const books&)':|
C:\Users\Unlimited\Desktop\projekt.cpp|15|note: synthesized method 'std::basic_fstream<char, std::char_traits<char> >& std::basic_fstream<char, std::char_traits<char> >::operator=(const std::basic_fstream<char, std::char_traits<char> >&)' first required here |
C:\Users\Unlimited\Desktop\projekt.cpp||In member function 'void books::remove_book()':|
C:\Users\Unlimited\Desktop\projekt.cpp|168|note: synthesized method 'books& books::operator=(const books&)' first required here |
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|47|instantiated from 'void __gnu_cxx::new_allocator<_Tp>::construct(_Tp*, const _Tp&) [with _Tp = books]'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\bits\stl_vector.h|737|instantiated from 'void std::vector<_Tp, _Alloc>::push_back(const _Tp&) [with _Tp = books, _Alloc = std::allocator<books>]'|
C:\Users\Unlimited\Desktop\projekt.cpp|96|instantiated from here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\bits\ios_base.h|790|error: 'std::ios_base::ios_base(const std::ios_base&)' is private|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|47|error: within this context|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|87|note: synthesized method 'std::basic_ios<char, std::char_traits<char> >::basic_ios(const std::basic_ios<char, std::char_traits<char> >&)' first required here |
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\streambuf|770|error: 'std::basic_streambuf<_CharT, _Traits>::basic_streambuf(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char, _Traits = std::char_traits<char>]' is private|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|78|error: within this context|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|87|instantiated from 'void __gnu_cxx::new_allocator<_Tp>::construct(_Tp*, const _Tp&) [with _Tp = books]'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\bits\stl_vector.h|737|instantiated from 'void std::vector<_Tp, _Alloc>::push_back(const _Tp&) [with _Tp = books, _Alloc = std::allocator<books>]'|
C:\Users\Unlimited\Desktop\projekt.cpp|96|instantiated from here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|87|note: synthesized method 'std::basic_filebuf<char, std::char_traits<char> >::basic_filebuf(const std::basic_filebuf<char, std::char_traits<char> >&)' first required here |
C:\Users\Unlimited\Desktop\projekt.cpp|15|note: synthesized method 'std::basic_fstream<char, std::char_traits<char> >::basic_fstream(const std::basic_fstream<char, std::char_traits<char> >&)' first required here |
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\ext\new_allocator.h||In member function 'void __gnu_cxx::new_allocator<_Tp>::construct(_Tp*, const _Tp&) [with _Tp = books]':|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\ext\new_allocator.h|105|note: synthesized method 'books::books(const books&)' first required here |
||=== Build finished: 8 errors, 0 warnings ===|

c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\bits\ios_base.h||In member function 'std::basic_ios<char, std::char_traits<char> >& std::basic_ios<char, std::char_traits<char> >::operator=(const std::basic_ios<char, std::char_traits<char> >&)':|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\bits\ios_base.h|793|error: 'std::ios_base& std::ios_base::operator=(const std::ios_base&)' is private|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|47|error: within this context|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd||In member function 'std::basic_istream<char, std::char_traits<char> >& std::basic_istream<char, std::char_traits<char> >::operator=(const std::basic_istream<char, std::char_traits<char> >&)':|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|53|note: synthesized method 'std::basic_ios<char, std::char_traits<char> >& std::basic_ios<char, std::char_traits<char> >::operator=(const std::basic_ios<char, std::char_traits<char> >&)' first required here |
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd||In member function 'std::basic_iostream<char, std::char_traits<char> >& std::basic_iostream<char, std::char_traits<char> >::operator=(const std::basic_iostream<char, std::char_traits<char> >&)':|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|59|note: synthesized method 'std::basic_istream<char, std::char_traits<char> >& std::basic_istream<char, std::char_traits<char> >::operator=(const std::basic_istream<char, std::char_traits<char> >&)' first required here |
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd||In member function 'std::basic_fstream<char, std::char_traits<char> >& std::basic_fstream<char, std::char_traits<char> >::operator=(const std::basic_fstream<char, std::char_traits<char> >&)':|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|87|note: synthesized method 'std::basic_iostream<char, std::char_traits<char> >& std::basic_iostream<char, std::char_traits<char> >::operator=(const std::basic_iostream<char, std::char_traits<char> >&)' first required here |
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\streambuf||In member function 'std::basic_filebuf<char, std::char_traits<char> >& std::basic_filebuf<char, std::char_traits<char> >::operator=(const std::basic_filebuf<char, std::char_traits<char> >&)':|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\streambuf|778|error: 'std::basic_streambuf<_CharT, _Traits>& std::basic_streambuf<_CharT, _Traits>::operator=(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char, _Traits = std::char_traits<char>]' is private|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|78|error: within this context|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd||In member function 'std::basic_fstream<char, std::char_traits<char> >& std::basic_fstream<char, std::char_traits<char> >::operator=(const std::basic_fstream<char, std::char_traits<char> >&)':|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|87|note: synthesized method 'std::basic_filebuf<char, std::char_traits<char> >& std::basic_filebuf<char, std::char_traits<char> >::operator=(const std::basic_filebuf<char, std::char_traits<char> >&)' first required here |
C:\Users\Unlimited\Desktop\projekt.cpp||In member function 'books& books::operator=(const books&)':|
C:\Users\Unlimited\Desktop\projekt.cpp|15|note: synthesized method 'std::basic_fstream<char, std::char_traits<char> >& std::basic_fstream<char, std::char_traits<char> >::operator=(const std::basic_fstream<char, std::char_traits<char> >&)' first required here |
C:\Users\Unlimited\Desktop\projekt.cpp||In member function 'void books::remove_book()':|
C:\Users\Unlimited\Desktop\projekt.cpp|168|note: synthesized method 'books& books::operator=(const books&)' first required here |
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|47|instantiated from 'void __gnu_cxx::new_allocator<_Tp>::construct(_Tp*, const _Tp&) [with _Tp = books]'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\bits\stl_vector.h|737|instantiated from 'void std::vector<_Tp, _Alloc>::push_back(const _Tp&) [with _Tp = books, _Alloc = std::allocator<books>]'|
C:\Users\Unlimited\Desktop\projekt.cpp|96|instantiated from here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\bits\ios_base.h|790|error: 'std::ios_base::ios_base(const std::ios_base&)' is private|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|47|error: within this context|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|87|note: synthesized method 'std::basic_ios<char, std::char_traits<char> >::basic_ios(const std::basic_ios<char, std::char_traits<char> >&)' first required here |
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\streambuf|770|error: 'std::basic_streambuf<_CharT, _Traits>::basic_streambuf(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char, _Traits = std::char_traits<char>]' is private|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|78|error: within this context|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|87|instantiated from 'void __gnu_cxx::new_allocator<_Tp>::construct(_Tp*, const _Tp&) [with _Tp = books]'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\bits\stl_vector.h|737|instantiated from 'void std::vector<_Tp, _Alloc>::push_back(const _Tp&) [with _Tp = books, _Alloc = std::allocator<books>]'|
C:\Users\Unlimited\Desktop\projekt.cpp|96|instantiated from here|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|87|note: synthesized method 'std::basic_filebuf<char, std::char_traits<char> >::basic_filebuf(const std::basic_filebuf<char, std::char_traits<char> >&)' first required here |
C:\Users\Unlimited\Desktop\projekt.cpp|15|note: synthesized method 'std::basic_fstream<char, std::char_traits<char> >::basic_fstream(const std::basic_fstream<char, std::char_traits<char> >&)' first required here |
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\ext\new_allocator.h||In member function 'void __gnu_cxx::new_allocator<_Tp>::construct(_Tp*, const _Tp&) [with _Tp = books]':|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\ext\new_allocator.h|105|note: synthesized method 'books::books(const books&)' first required here |
||=== Build finished: 8 errors, 0 warnings ===|

cyklopek11, tak nie może być bo ten konstruktor jest wywoływany tyle razy ile podam dane książki, a wtedy za każdym razem będzie mi deklarować miejsce w RAM na plik.
P-66878
cyklopek11
» 2012-10-15 19:32:51
A sekwencja czynności:
C/C++
fstream * file = new fstream;
file->open( "dane.txt", ios::app );
file->write( argumenty_aktualne );
file.close();
delete file; // i RAM nie wycieka
P-66882
Unlimited
Temat założony przez niniejszego użytkownika
» 2012-10-15 19:39:22
A może jest jakiś łatwiejszy sposób? Tak że tylko zadeklaruję i jest? Mam ten błąd odkąd używam vectora. Może coś z nim jest nie tak?
Na początku miałem z tablicą to wszystko działało ale niestety tablica ograniczała ilość książek do wpisania. Także użyłem vectora i klapa. fstream wysypuje program
P-66884
cyklopek11
» 2012-10-15 19:43:28
Zrób
C/C++
fstream file; //globalny zasieg
P-66885
Unlimited
Temat założony przez niniejszego użytkownika
» 2012-10-15 20:36:31
Dlaczego na to nie wpadłem? Proste rozwiązania czasami są najlepsze. Dzięki wielkie cyklop11 za podpowiedź
P-66895
« 1 » 2 3
  Strona 1 z 3 Następna strona