ofstream::attach()

Martin Schroeder

Erfahrenes Mitglied
Moin moin!
Ich wollte mal wisse, was ich machen muss, um ein ofstream-Objekt an ein beliebiges Handle "ranzukleben". Amm bessten wäre es, wenn ich das mit File-Handles, aber auch mit zB. stdout machen könnte.
Ich möchte nämlich die Ausgabe meines Programmes dynamisch machen und zwar mit nur einem Objekt. (Da gibt es nichts dran zu rütteln!!:-) )
 
Hi.

Das geht nicht in Standard C++.

Allerdings wenn du Visual C/C++ 6 benutzt gibt es die Methode attach. Der mußt du dann einfach das Handle übergeben.
Code:
#include <cstdlib>
#include <cstdio>
#include <fstream>

std::ofstream ostr;
ostr.attach(fileno(stdout));
Gruß
 
Aha. Ja so in etwa hab ich mir das auch gedacht.
Beim Testen ist das Programm aber abgestürtzt. (Ich weiß nicht genau, ob es daran liegt, ich guck noch mal nach)
Funktioniert das mit File-Handles auch so?
Kann ich schreiben:
Code:
ofstream ostr;
FILE *f=fopen("bla.txt","w");
ostr.attach(fileno(f));
 
Zurück