同时将输入和输出重定向到文件
出于多种原因,人们可能希望将标准输入和输出流重定向到文件,例如收集用户数据或执行批处理。本文提供了在 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中文网其他相关文章!