Eingabe- und Ausgabeströme in Dateien umleiten
Um Standardeingabe (cin) und Standardausgabe (cout) zur Eingabe und Ausgabe in Dateien umzuleiten Die jeweiligen Operationen folgen diesen Schritte:
Implementierung:
#include <iostream> #include <fstream> #include <string> int main() { // Open the input and output files std::ifstream in("in.txt"); std::ofstream out("out.txt"); // Redirect cin and cout to the files std::streambuf* cinbuf = std::cin.rdbuf(); std::cin.rdbuf(in.rdbuf()); std::streambuf* coutbuf = std::cout.rdbuf(); std::cout.rdbuf(out.rdbuf()); // Perform input and output operations std::string line; while (std::getline(std::cin, line)) { std::cout << line << "\n"; } // Reset cin and cout to standard streams std::cin.rdbuf(cinbuf); std::cout.rdbuf(coutbuf); return 0; }
Erklärung:
Vereinfacht Weiterleitung:
Sie können auch in einer Zeile speichern und umleiten mit:
auto cinbuf = std::cin.rdbuf(in.rdbuf());
Dies setzt den Puffer von cin auf in.rdbuf() und gibt den alten Puffer zurück, der mit cin verknüpft ist. Die gleiche Technik kann mit std::cout.
verwendet werdenDas obige ist der detaillierte Inhalt vonWie kann ich C-Standard-Eingabe- und Ausgabestreams in Dateien umleiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!