/*
** Autor: Wangzhicheng
** E-Mail: 2363702560@qq.com
** Date: 2012/10/4
** Description: 交换两个文件内容
*/
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <string>
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<<"文件交换成功!"<<endl;
}
void main() {
cout<<"Written By Wangzhicheng!"<<endl;
string filename1,filename2;
SwapFile(filename1,filename2);
}利用C语言重定向函数freopen实现交换两个文本文件内容
交换文件内容程序
最新推荐文章于 2025-02-12 09:02:01 发布
本文介绍了一个简单的C++程序,该程序能够实现两个文件的内容互换。通过创建一个临时文件,并利用标准输入输出流重定向的方法,依次将一个文件的内容复制到临时文件,再将另一个文件的内容复制到第一个文件,最后将临时文件的内容复制到第二个文件,从而完成文件内容的交换。
576

被折叠的 条评论
为什么被折叠?



