//使用ifstream和ofstream及cin和cout的rdbuf()
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
printf(" 使用ifstream和ofstream及cin和cout的rdbuf()来改变控制台的标准输入输出\n");
//将控制台的标准输入输出改成从文件中读取写入
ifstream inFile("infile.txt");
ofstream outFile("outfile.txt");
//保存原来的输入输出方式 streambuf类就是basic_streambuf类
streambuf *strmin_buf = cin.rdbuf();
streambuf *strmout_buf = cout.rdbuf();
printf("开始处理文件\n....\n");
//重定向到文件
cin.rdbuf(inFile.rdbuf());
cout.rdbuf(outFile.rdbuf());
//原程序代码
int n;
while (cin>>n)
{
n *= 2;
cout<<n<<endl;
}
inFile.close();
outFile.close();
//回到控制台的标准输入输出
cin.rdbuf(strmin_buf);
cout.rdbuf(strmout_buf);
cout<<"文件已经处理完毕 输入0表示结束:"<<endl;
do{
cin>>n;
}while (n != 0);
return 0;
}
使用ifstream ofstream重定向输入输出 c++
最新推荐文章于 2023-12-29 13:45:17 发布