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 constructorstd::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 constructorstd::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 privateKann 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.