首页 >后端开发 >C++ >如何将 C 标准输入和输出重定向到外部文件?

如何将 C 标准输入和输出重定向到外部文件?

DDD
DDD原创
2024-12-19 00:03:10531浏览

How to Redirect C   Standard Input and Output to External Files?

将输入和输出重定向到外部文件

将标准输入 (cin) 的输入和标准输出 (cout) 的输出重定向到外部文件是一种用于测试、调试或分析程序行为的有用技术。

将 cin 重定向到指定文件(例如 in.txt):

  • 为输入文件打开一个 ifstream 对象。
  • 使用 cin.rdbuf() 保存与 cin 关联的旧缓冲区.
  • 使用以下命令将 cin 重定向到输入文件的缓冲区cin.rdbuf(in.rdbuf()).

将 cout 重定向到指定文件(例如 out.txt):

  • 遵循与重定向 cin 相同的步骤,但使用 ofstream 对象和 cout.rdbuf()

示例代码:

#include <iostream>
#include <fstream>
#include <string>

int main() {
    // Redirect cin to in.txt
    std::ifstream in("in.txt");
    std::streambuf *cinbuf = std::cin.rdbuf();
    std::cin.rdbuf(in.rdbuf());

    // Redirect cout to out.txt
    std::ofstream out("out.txt");
    std::streambuf *coutbuf = std::cout.rdbuf();
    std::cout.rdbuf(out.rdbuf());

    // Read and write to the redirected streams
    std::string line;
    while (std::getline(std::cin, line)) {
        std::cout << line << "\n";
    }

    // Reset to standard input and output
    std::cin.rdbuf(cinbuf);
    std::cout.rdbuf(coutbuf);
}

注意: 您还可以使用以下命令在一行中重定向输入和输出以下语法:

auto cinbuf = std::cin.rdbuf(in.rdbuf());
auto coutbuf = std::cout.rdbuf(out.rdbuf());

以上是如何将 C 标准输入和输出重定向到外部文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn