cin/printf 重定向

cin/printf 重定向

OJ 重定向模板
//OJ 重定向模板
#include
    
    
     
     

#include
     
     
      
      
#include
      
      
       
       
#include
       
       
        
        
using namespace std;

#define ioRedirect



int main(){
#ifdef ioRedirect
	//两行语句只能启用一行 且 iostream与stdio.h最好不要同时包含!
	ifstream mycin("d:\\in.txt"); cin.rdbuf(mycin.rdbuf());	
	//freopen("d:\\in.txt", "r", stdin);
#endif

	return 0;
}

       
       
      
      
     
     
    
    
IO重定向
//输入输出重定向cin、cout
//用于本地调试,哈哈
#include 
   
   
    
    
#include 
    
    
     
     
using namespace std;
int main()
{
    //way-1
 ofstream out("out.txt");//in.txt为输入测试数据,该文档存放于与代码同文件夹内
 ifstream in("in.txt");
 
 cin.rdbuf(in.rdbuf());
 cout.rdbuf(out.rdbuf());
 
 return 0;
}
//traditional c style ///
//有很多比赛都是cin超时。哎。。。还得用scanf
#include 
     
     
      
      
int main( )
{
	freopen("in.txt","r",stdin); 
	freopen("out.txt","w",stdout); 
	return 0;
}

     
     
    
    
   
   

微笑重定向后如何恢复到 控制台IO ?
答:需在重定向前做好备份。

fstream inFile,outFile;
streambuf   *stdcin,*stdcout;
stdcin=cin.rdbuf();
stdcout=cout.rdbuf();  //提前备份   
inFile.open("d:\\contract_in.txt",ios::in);
outFile.open("d:\\contract_out.txt",ios::out|ios::trunc);//文件流关联到文件
cin.rdbuf(inFile.rdbuf());
cout.rdbuf(outFile.rdbuf());//重定向
inFile.close();
outFile.close();//文件关闭
cin.rdbuf(stdcin);
cout.rdbuf(stdcout);//恢复到标准输出


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值