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());
À 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());
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);
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!