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

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

DDD
发布: 2024-12-19 00:03:10
原创
477 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板