Heim > Backend-Entwicklung > C++ > Wie kann ich sowohl die Standardeingabe als auch die Standardausgabe in Dateien in C umleiten?

Wie kann ich sowohl die Standardeingabe als auch die Standardausgabe in Dateien in C umleiten?

Barbara Streisand
Freigeben: 2024-12-25 03:07:15
Original
491 Leute haben es durchsucht

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

Gleichzeitiges Umleiten von Ein- und Ausgaben in Dateien

Man kann aus verschiedenen Gründen den Wunsch haben, die Standard-Ein- und Ausgabeströme in Dateien umzuleiten, z Sammeln von Benutzerdaten oder Durchführen einer Stapelverarbeitung. Dieser Artikel bietet eine umfassende Lösung, um dies in C zu erreichen.

Lösung

Der bereitgestellte C-Code zeigt effektiv, wie die Standardeingabe umgeleitet wird (cin) in eine bestimmte Datei („in.txt“) und die Standardausgabe (cout) in eine angegebene Datei ("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
}
Nach dem Login kopieren

Um sowohl Eingabe als auch Ausgabe in einer einzigen Zeile umzuleiten:

auto cinbuf = std::cin.rdbuf(in.rdbuf());  // save and redirect input
Nach dem Login kopieren

Dieses Prinzip gilt für jeden Stream und ermöglicht Benutzereingaben und Programmausgaben bequem zu verwalten.

Das obige ist der detaillierte Inhalt vonWie kann ich sowohl die Standardeingabe als auch die Standardausgabe in Dateien in C umleiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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