Maison > développement back-end > C++ > Comment puis-je rediriger l'entrée et la sortie standard vers des fichiers en C ?

Comment puis-je rediriger l'entrée et la sortie standard vers des fichiers en C ?

Barbara Streisand
Libérer: 2024-12-25 03:07:15
original
492 Les gens l'ont consulté

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

Redirection simultanée des entrées et des sorties vers des fichiers

On peut souhaiter rediriger les flux d'entrée et de sortie standard vers des fichiers pour diverses raisons, telles que collecter des données utilisateur ou effectuer un traitement par lots. Cet article fournit une solution complète pour y parvenir en C.

Solution

Le code C fourni montre efficacement comment rediriger l'entrée standard (cin) vers un fichier désigné ("in.txt") et la sortie standard (cout) vers un fichier spécifié ("out.txt") :

#include <iostream>
#include <fstream>
#include <string>

void f() {
  std::string line;
  while (std::getline(std::cin, line)) {  // input from "in.txt"
    std::cout << line << "\n";  // output to "out.txt"
  }
}

int main() {
  std::ifstream in("in.txt");
  std::streambuf *cinbuf = std::cin.rdbuf();  // save old cin buffer
  std::cin.rdbuf(in.rdbuf());  // redirect std::cin to "in.txt"

  std::ofstream out("out.txt");
  std::streambuf *coutbuf = std::cout.rdbuf();  // save old cout buffer
  std::cout.rdbuf(out.rdbuf());  // redirect std::cout to "out.txt"

  std::string word;
  std::cin >> word;  // input from "in.txt"
  std::cout << word << "  ";  // output to "out.txt"

  f();  // call function

  std::cin.rdbuf(cinbuf);  // reset cin to standard input
  std::cout.rdbuf(coutbuf);  // reset cout to standard output

  std::cin >> word;  // input from standard input
  std::cout << word;  // output to standard output
}
Copier après la connexion

Pour rediriger à la fois l'entrée et la sortie sur une seule ligne :

auto cinbuf = std::cin.rdbuf(in.rdbuf());  // save and redirect input
Copier après la connexion

Ce principe s'applique à n'importe quel flux, permettant l'entrée utilisateur et la sortie du programme à gérer facilement.

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