Heim >Backend-Entwicklung >C++ >Wie kann ich „cin' und „cout' von C in externe Dateien umleiten?

Wie kann ich „cin' und „cout' von C in externe Dateien umleiten?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-27 16:43:10402Durchsuche

How Can I Redirect C  's `cin` and `cout` to External Files?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn