C++文件重定向

方法一

命令行使用 < 和 >

1
func.exe < infile.txt > outfile.txt

方法二

C++实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <ostream>
#include <fstream>
using namespace std;
int main()
{
ifstream fin("input.txt"); // 已有输入文件
ofstream fout("output.txt"); //输出文件

streambuf *cinbackup;
streambuf *coutbackup;

coutbackup= cout.rdbuf(fout.rdbuf()); //用 rdbuf() 重新定向
cinbackup= cin.rdbuf(fin.rdbuf()); //用 rdbuf() 重新定向
cout<<"Hello world"<<endl; //去文件也

char line[100];
cin>>line; //从input.txt文件读入d
cout<<line<<endl; //写入 output.txt
//恢复标准流缓冲区
cin.rdbuf(cinbackup); // 取消,恢复键盘输入
cout.rdbuf(coutbackup); //取消,恢复屏幕输出

return 0;
}

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!