Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh mengubah hala kedua-dua Input dan Output Standard ke Fail dalam C?

Bagaimanakah saya boleh mengubah hala kedua-dua Input dan Output Standard ke Fail dalam C?

Barbara Streisand
Barbara Streisandasal
2024-12-25 03:07:15462semak imbas

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

Serentak Mengubah Input dan Output ke Fail

Seseorang mungkin berhasrat untuk mengubah hala strim input dan output standard ke fail atas sebab yang pelbagai, seperti mengumpul data pengguna atau melakukan pemprosesan kelompok. Artikel ini menyediakan penyelesaian yang komprehensif untuk mencapai ini dalam C .

Penyelesaian

Kod C yang disediakan secara berkesan menunjukkan cara mengubah hala input standard (cin) ke fail yang ditetapkan ("in.txt") dan output standard (cout) ke fail yang ditentukan ("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
}

Untuk mengubah hala kedua-dua input dan output dalam satu baris:

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

Prinsip ini terpakai pada mana-mana aliran, membenarkan input pengguna dan output program untuk diuruskan dengan mudah.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengubah hala kedua-dua Input dan Output Standard ke Fail dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn