Name in Datei schreiben

Schnelle objektorientierte, kompilierende Programmiersprache.
nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Name in Datei schreiben

Beitrag von nufan » Fr Jun 26, 2009 9:07 pm

G_loW hat geschrieben:Die letzte frage: Muss ich "ofstream" auch wieder schließen ?
Um ganz korrekt zu sein:
ofstream musst du nicht schließen. Ist doch nur ein Typ. Jedoch musst du der Instanz (in deinem Fall fout) des Typs ofstream sagen, dass sie die Datei zumachen soll. Das machst du mit:

Code: Alles auswählen

fout.close ();
Hier findest du noch mehr Infos zu ofstream (und vielem mehr):
http://www.cplusplus.com/reference/iostream/ofstream/

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: Name in Datei schreiben

Beitrag von Kerli » Fr Jun 26, 2009 9:42 pm

dani93 hat geschrieben:Jedoch musst du der Instanz (in deinem Fall fout) des Typs ofstream sagen, dass sie die Datei zumachen soll.
Das muss auch nicht unbedingt sein ;)

Wenn man es nicht macht dann passiert es automatisch wenn der Destrutor der ofstream-Instanz aufgerufen wird, dh. wenn die Variable ihren Gültigkeitsbereich verlässt.
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Name in Datei schreiben

Beitrag von nufan » Fr Jun 26, 2009 9:56 pm

Kerli hat geschrieben:
dani93 hat geschrieben:Jedoch musst du der Instanz (in deinem Fall fout) des Typs ofstream sagen, dass sie die Datei zumachen soll.
Das muss auch nicht unbedingt sein ;)

Wenn man es nicht macht dann passiert es automatisch wenn der Destrutor der ofstream-Instanz aufgerufen wird, dh. wenn die Variable ihren Gültigkeitsbereich verlässt.
Ich habs gerade mit der Gnome-Systemüberwachung getestet und es scheint wirklich so zu sein. Warum findet sich in der Referenz überhaupt kein Destruktor und auch bei close () kein Hinweis darauf?!
Das sollten wir aber besser machen (*versteckter Push*) :)

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: Name in Datei schreiben

Beitrag von Kerli » Fr Jun 26, 2009 10:02 pm

dani93 hat geschrieben:Warum findet sich in der Referenz überhaupt kein Destruktor und auch bei close () kein Hinweis darauf?!
Weil es nicht direkt der Destruktor von ofstream sonder von seinem Member filebuf ;)

http://www.cplusplus.com/reference/iost ... /~filebuf/
dani93 hat geschrieben:Das sollten wir aber besser machen (*versteckter Push*) :)
Wer will kann es gerne machen :P Nächste Woche hab ich noch eine große und eine nicht so große Prüfung. Dann sollte ich wieder mehr Zeit haben und kann auch wieder mehr am Wiki mitwirken...
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Name in Datei schreiben

Beitrag von nufan » Fr Jun 26, 2009 10:23 pm

Kerli hat geschrieben:
dani93 hat geschrieben:Warum findet sich in der Referenz überhaupt kein Destruktor und auch bei close () kein Hinweis darauf?!
Weil es nicht direkt der Destruktor von ofstream sonder von seinem Member filebuf ;)

http://www.cplusplus.com/reference/iost ... /~filebuf/
Schön langsam merke ich wie komplex diese Sprach im Vergleich zu C ist. Dort hat man Variablen und Funktionen, wenn man Speicher allokiert gibt man ihn wieder frei, wenn man eine Datei öffnet schließt man sie wieder und wenn man eine Funktion ohne Parameter aufruft hat die auch wirklich keine Parameter. In C++ muss man auch noch auf Vererbungen, Konstruktoren, Destruktoren, implizite Funktionsanpassungen des Compilers usw. aufpassen... da wartet noch ein hartes Stück Arbeit auf mich ;)

Kerli hat geschrieben:
dani93 hat geschrieben:Das sollten wir aber besser machen (*versteckter Push*) :)
Wer will kann es gerne machen :P Nächste Woche hab ich noch eine große und eine nicht so große Prüfung. Dann sollte ich wieder mehr Zeit haben und kann auch wieder mehr am Wiki mitwirken...
Ich hab mal angenommen, dass wenn wir ein C-Tutorial mit Referenz haben und ein C++-Tutorial in Planung ist (bzw. bereits fertig geplant aber noch nicht geschrieben ist) auch irgendwann eine C++-Referenz haben werden.
Ich hab keine Ahnung wie viel Zeit ich in den Ferien haben werde. Zurzeit herrscht in meinem Gebiet totaler Ausnahmezustand. Langsam bin ich froh wenn ich Internet bzw. überhaupt Strom habe.

Antworten