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
455 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:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

#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:

1

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:

1

2

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!

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