同時將輸入和輸出重新導向到檔案
出於多種原因,人們可能希望將標準輸入和輸出流重新導向到文件,例如收集使用者資料或執行批次處理。本文提供了在 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中文網其他相關文章!