/*
** Autor: Wangzhicheng
** E-Mail: 2363702560@qq.com
** Date: 2012/10/4
** Description: 交换两个文件内容
*/
#include
#include
#include
#include
using namespace std;
/*
将源文件写入目标文件中
*/
inline static bool WriteToFile(string SrcFilename,string DesFilename) {
FILE *stream;
stream=freopen(SrcFilename.c_str(),"r",stdin); //将源文件内容重定向到标准输入流
/*
这意味着标准输入流指向文件SrcFilename,对标准输入流的读取实际上是对SrcFilename的读取
*/
if(!stream) return false;
stream=freopen(DesFilename.c_str(),"w",stdout); //将目标文件内容重定向到标准输出流
/*
这意味着标准输出流指向文件DesFilename,对标准输出流的写入实际上是对DesFilename的写入
*/
if(!stream) return false;
char c;
while(scanf("%c",&c)!=EOF) printf("%c",c); //从输入流读取字符,然后写入输出流
/*
这意味着从源文件读取内容,然后写入目标文件
*/
fclose(stdin);
fclose(stdout);
return true;
}
inline static void SwapFile(string &filename1,string &filename2) {
string tmpfilename="e:\\tmp.txt"; //指定临时文件名
cout<
cin>>filename1;
cout<
cin>>filename2;
if(!WriteToFile(filename1,tmpfilename)) return;
if(!WriteToFile(filename2,filename1)) return;
if(!WriteToFile(tmpfilename,filename2)) return;
cout<
}
void main() {
cout<
string filename1,filename2;
SwapFile(filename1,filename2);
}