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

source:php.cn
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