Maison > développement back-end > C++ > Comment puis-je rediriger les fichiers « cin » et « cout » de C vers des fichiers externes ?

Comment puis-je rediriger les fichiers « cin » et « cout » de C vers des fichiers externes ?

Patricia Arquette
Libérer: 2024-12-27 16:43:10
original
447 Les gens l'ont consulté

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

Redirection de cin et cout vers des fichiers externes

Pour rediriger les flux d'entrée et de sortie (cin et cout, respectivement) vers des fichiers externes, suivez ces étapes :

#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());
Copier après la connexion

À partir de ce moment, toute entrée lue depuis std::cin proviendra de "in.txt" et toute sortie écrite dans std::cout sera écrite dans "out.txt".

Pour rediriger sur une seule ligne, utilisez :

auto cinbuf = std::cin.rdbuf(in.rdbuf());
Copier après la connexion

Ceci définit le tampon de std::cin sur in.rdbuf() et renvoie l'ancien tampon pour une utilisation ultérieure. La même technique peut être utilisée pour std::cout (ou tout autre flux).

Enfin, pour restaurer l'entrée et la sortie standard, réinitialisez les tampons :

std::cin.rdbuf(cinbuf);
std::cout.rdbuf(coutbuf);
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal