cin und cout in externe Dateien umleiten
Um die Eingabe- und Ausgabeströme (cin bzw. cout) in externe Dateien umzuleiten, befolgen Sie die folgenden Schritte diese Schritte:
#include <iostream> #include <fstream> int main() { // Open input file for reading std::ifstream in("in.txt"); // Save old input buffer std::streambuf *cinbuf = std::cin.rdbuf(); // Redirect cin to input file std::cin.rdbuf(in.rdbuf()); // Open output file for writing std::ofstream out("out.txt"); // Save old output buffer std::streambuf *coutbuf = std::cout.rdbuf(); // Redirect cout to output file std::cout.rdbuf(out.rdbuf());
Von diesem Punkt an kommen alle von std::cin gelesenen Eingaben von „in.txt“ und jede in std::cout geschriebene Ausgabe wird in „out.txt“ geschrieben.
Um in einer einzelnen Zeile umzuleiten, verwenden Sie:
auto cinbuf = std::cin.rdbuf(in.rdbuf());
Dies setzt den Puffer von std::cin auf in.rdbuf() und gibt den alten Puffer zur späteren Verwendung zurück. Die gleiche Technik kann für std::cout (oder jeden anderen Stream) verwendet werden.
Um schließlich die Standardeingabe und -ausgabe wiederherzustellen, setzen Sie die Puffer zurück:
std::cin.rdbuf(cinbuf); std::cout.rdbuf(coutbuf);
Das obige ist der detaillierte Inhalt vonWie kann ich „cin' und „cout' von C in externe Dateien umleiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!