功能说明:
在同一目录下带覆盖检测的拷贝一份文件
操作说明:
-
g++ cp.cpp -o cp
-
./cp 源文件名 目标文件名
代码:
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc,const char* argv[])
{
if(3 != argc)
{
cout << "User:cp src dest"<< endl;
return 0;
}
ifstream src(argv[1]);
if(!src.good())
{
cout << "源文件不存在,请检查!" << endl;
return 0;
}
ifstream test(argv[2]);
if(test.good())
{
cout << "目标文件已经存在,是否覆盖(y/n)?";
char cmd;
cin >> cmd;
if('n' == cmd || 'N' == cmd)
{
src.close();
test.close();
return 0;
}
}
ofstream dest(argv[2]);
char buf[1];
while(src.read(buf,sizeof(buf)).gcount() > 0)
{
dest.write(buf,src.gcount());
}
src.close();
dest.close();
//remove(argv[1]); 删除源文件相当于 mv命令
}