将 cin 和 cout 重定向到外部文件
要将输入和输出流(分别为 cin 和 cout)重定向到外部文件,请执行以下操作这些步骤:
#include <iostream> #include <fstream> int main() { // Open input file for reading std::ifstream in("in.txt"); // Save old input buffer std::streambuf *cinbuf = std::cin.rdbuf(); // Redirect cin to input file std::cin.rdbuf(in.rdbuf()); // Open output file for writing std::ofstream out("out.txt"); // Save old output buffer std::streambuf *coutbuf = std::cout.rdbuf(); // Redirect cout to output file std::cout.rdbuf(out.rdbuf());
从现在开始,从 std::cin 读取的任何输入都将来自“in.txt”,并且写入 std::cout 的任何输出都将写入“out.txt”。
要在单行中重定向,请使用:
auto cinbuf = std::cin.rdbuf(in.rdbuf());
此将 std::cin 的缓冲区设置为 in.rdbuf() 并返回旧缓冲区以供以后使用。相同的技术可用于 std::cout (或任何其他流)。
最后,要恢复标准输入和输出,请重置缓冲区:
std::cin.rdbuf(cinbuf); std::cout.rdbuf(coutbuf);
以上是如何将 C 的 `cin` 和 `cout` 重定向到外部文件?的详细内容。更多信息请关注PHP中文网其他相关文章!