用streambuf先备份原来的cin或者cout的rdbuf,然后用ifstream或ofstream的rdbuf绑定到cin或者cout的rdbuf。使用完后记得用当初streambuf备份的cin或者cout的默认rdbuf重新绑定到cin或者cout的rdbuf上,恢复默认状态。
#include <iostream>
#include <algorithm> // has copy
#include <iterator>
#include <fstream>
#include <string>
using namespace std;
int main()
{
string str;
streambuf * backup;
ifstream fin;
fin.open("input.txt");
backup=cin.rdbuf();
cin.rdbuf(fin.rdbuf());
//put your code here
int a,b,c;
cin>>a>>b>>c;
if (a<3&&b<5&&c<7)
{
int i=0;
for (i=10;i<101;i++)
{
if ((i%3)==a&&(i%5)==b&&(i%7)==c)
{
cout<<i<<endl;
break;
}
}
if (i==101)
{
cout<<"No answer"<<endl;
}
}
else
{
cout<<"No answer"<<endl;
}
//recover rdbuf
cin.rdbuf(backup);
fin.close();
return 0;
}