Die Dokumentation besagt, dass FILE
der Objekttyp ist, der einen Stream identifiziert. Also, ist es möglich, das Stream-Objekt mit einer FILE
?Wie bekomme ich ein Stream-Objekt, das durch eine Datei identifiziert wurde?
Zum Beispiel würde Ich mag std::cout
Objekt aus stdout
FILE
Zeigern zu bekommen, oder std::cerr
von stderr
usw. Allgemein Ich mag eine Funktion schreiben, die einen bestimmten Strom leitet und setzen die benutzerdefinierten streambuf
, um es, so etwas wie diese :
void redirect(FILE* file, std::ios stream) {
freopen_s((FILE**)file, "CONOUT$", "w", file);
stream.rdbuf(customBuffer);
}
verwendet Ströme umleiten
redirect(stdout, std::cout);
redirect(stderr, std::cerr);
Es überflüssig scheint zwei Parameter zu haben, da beide param eters sind immer miteinander verbunden.
Warum nicht Dateiströme an erster Stelle verwenden? –
Ich möchte, dass meine Funktion auf allen I/O-Streams läuft, nicht nur auf std :: fstream, so dass sie auch Standard-Streams umleiten kann. – krsi