Heim > Backend-Entwicklung > C++ > Wie kann ich C-Standard-Eingabe- und Ausgabestreams in Dateien umleiten?

Wie kann ich C-Standard-Eingabe- und Ausgabestreams in Dateien umleiten?

Patricia Arquette
Freigeben: 2024-12-23 00:08:09
Original
358 Leute haben es durchsucht

How Can I Redirect C   Standard Input and Output Streams to Files?

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

Erklärung:

  • Öffnen Sie die Eingabe- und Ausgabedateien mit std ::ifstream bzw. std::ofstream.
  • Speichern Sie die aktuellen Puffer von cin und cout mit std::cin.rdbuf() und std::cout.rdbuf().
  • Leiten Sie cin mit std::cin.rdbuf(in) in den Puffer der Eingabedatei und cout mit std::cin.rdbuf(in) in den Puffer der Ausgabedatei um. rdbuf()) und std::cout.rdbuf(out.rdbuf()).
  • Führen Sie Eingabe- und Ausgabeoperationen aus als Üblich.
  • Stellen Sie cin und cout mit std::cin.rdbuf(cinbuf) und std::cout.rdbuf(coutbuf) auf ihre ursprünglichen Puffer wieder her.

Vereinfacht Weiterleitung:

Sie können auch in einer Zeile speichern und umleiten mit:

auto cinbuf = std::cin.rdbuf(in.rdbuf());
Nach dem Login kopieren

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 werden

Das 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!

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