Probleme bei Dateiausgabe



  • Hi,

    ich habe folgendes Problem:

    Ich möchte gerne Daten in eine Datei ausgeben, und zwar sowohl von meinem Hauptprogramm aus als auch von einer Methode aus, aber habe Probleme bei der Übergabe des Datenstroms.

    Zum Schreiben habe ich die Datei wie folgt geöffnet:

    ofstream datei(dateipfad_ausgabe.c_str());

    Naiverweise habe ich versucht, diesen Strom wie folgt an die Methode zu Übergeben:

    void methode(ofstream datei)
    {
    }

    Dies führt jedoch zu folgender Fehlermeldung:
    /usr/include/g++/bits/ios_base.h: In copy constructor std::basic\_ios<char, std::char\_traits<char> >::basic\_ios(const std::basic_ios<char, std::char_traits<char> >&)': /usr/include/g++/bits/ios\_base.h:668: error:std::ios_base::ios_base(const
    std::ios_base&)' is private
    baumstruct_class.cc:1238: error: within this context
    /usr/include/g++/streambuf: In copy constructor std::basic_filebuf<char, std::char\_traits<char> >::basic\_filebuf(const std::basic_filebuf<char, std::char_traits<char> >&)': /usr/include/g++/streambuf:921: error:std::basic_streambuf<_CharT,
    _Traits>::basic_streambuf(const std::basic_streambuf<_CharT, _Traits>&)
    [with _CharT = char, _Traits = std::char_traits<char>]' is private

    Kann mir jemand helfen, wie man es richtig macht?

    Danke



  • Hallo,
    Die Fehlermeldungen resultieren daraus, dass du Streams nicht kopieren kannst. (Der Copy-Ctor ist private. Wie du an den Fehlermeldungen siehst.) => Übergeben den Stream per Referenz an die Methode.

    Beispiel:

    void write_os(ostream& os)
    {
         os << "BLUB";
    }
    

    Gruß Caipi



  • Super, danke.
    Probiere ich gleich aus.


Anmelden zum Antworten