首頁 > 後端開發 > C++ > 如何將標準輸入和輸出重新導向到 C 語言中的檔案?

如何將標準輸入和輸出重新導向到 C 語言中的檔案?

Barbara Streisand
發布: 2024-12-25 03:07:15
原創
492 人瀏覽過

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

同時將輸入和輸出重新導向到檔案

出於多種原因,人們可能希望將標準輸入和輸出流重新導向到文件,例如收集使用者資料或執行批次處理。本文提供了在 C 中實現此目的的全面解決方案。

提供的 C 程式碼有效示範如何重新導向標準輸入 (cin)到指定檔案(“in.txt”)和標準輸出(cout)到指定檔案("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
}
登入後複製

在一行中重定向輸入和輸出:

auto cinbuf = std::cin.rdbuf(in.rdbuf());  // save and redirect input
登入後複製

這個原則適用於任何流,允許使用者輸入和程式輸出方便管理。

以上是如何將標準輸入和輸出重新導向到 C 語言中的檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板