1. 改变cin输入流
#include <iostream>
#include <fstream>
using namespace std;
int main( )
{
int a,b,c,d;
// 从main.txt中读取数据
ifstream infile("c://main.txt");
// 为恢复cin备份
streambuf *inrecover = cin.rdbuf();
// 指定cin输入源为流infile,即为main.txt
cin.rdbuf ( infile.rdbuf() );
// 程序自动接收数据a,b,c
cin >> a >> b;
cin >> c;
cout << a + b << endl;
cout << c << endl;
// 恢复cin输入源
cin.rdbuf ( inrecover );
// 等待从键盘输入数据
cin >> d;
cout << d;
getchar();
return 0;
}
2. 改变cout输出流
ofstream outf("out.txt");
streambuf *strm_buf = cout.rdbuf();
cout.rdbuf( outf.rdbuf() );
cout << "write something to file";
cout.rdbuf(strm_buf); //recover
cout << "display something on screen";