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
Freigeben: 2024-12-27 16:43:10
Original
399 Leute haben es durchsucht

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());
Nach dem Login kopieren

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());
Nach dem Login kopieren

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);
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage