C++重定向

这篇博客介绍了如何在C++中将cout输出重定向到文件,利用freopen函数和streambuf进行重定向操作,使得原本输出到终端的信息被记录到指定的文件中,从而实现标准输出的控制。
摘要由CSDN通过智能技术生成

需求:一份C++源码中许多 cout<<....<<endl ,终端总是输出很多信息,现在想把这些输出定位到一个文件中去,所以希望可以实现cout的重定向功能。

实现: 将标准输出(cout)重定向到文件out.txt中

freopen("out.txt","w",stdout);

该函数一般用于对标准输入、标准输出以及标准出错流的重定向,实验证明对于普通的文件重定向本函数也可以完成。首先获得FILE指针

FILE *lpf = fopen("out.txt","w");

然后还是通过函数freopen进行文件流的重定向,freopen函数的定义如下:

FILE *freopen(const char *filename,const char *type, FILE *stream);
所以重定向语句为:
freopen("outb.txt","w",lpf);

测试下重定向效果

fprintf(lpf,"hello world");
结果显示,“hello world”出现了文件outb.txt中,重定向成功。

以上这些都是C语言范围内的重定向机制,C++重定向主要由函数rdbuf完成。rdbuf原型如下两个重载函数

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值