C++实现复制文件操作
本帖最后由 zooo 于 2016-5-16 13:59 编辑刚开始学习小甲鱼的教程,感觉讲的不错,第四讲中留得课后作业是实现复制文件的操作。之前论坛中看了一个实现方式,不过有点问题,于是自己尝试编了一个,测试可以实现对exe,txt,doc格式的文件进行复制。
#include <fstream>
#include <iostream>
using namespace std;
int main( int argc,char *argv[] )
{
if( 3!=argc )
{
cerr<<"输入格式:copyFile.exe 源文件 目标文件"<<endl;
return 0;
}
fstream in(argv,ios::in|ios::binary);
if( !in )//如果没有找到文件则输出提示
{
cerr<<"打开"<<argv<<"失败"<<endl;
in.close();
return 0;
}
fstream out(argv,ios::out|ios::binary);
if( !out )
{
cerr<<"打开"<<argv<<"失败"<<endl;
out.close();
return 0;
}
char temp;
while( in.get(temp) )
{
out<<temp;
}
out<<endl;
cout<<"成功复制文件"<<endl;
in.close();
out.close();
return 0;
} 顶礼膜拜了 1 看看 看看
漂亮 看看 文件复制是直接一个个字符流(二进制流)复制? 看看 清音阁阁主 发表于 2016-5-9 01:11
文件复制是直接一个个字符流(二进制流)复制?
二进制流 看一看{:5_91:}{:5_90:} 看看 不错 赞一个 自己写的不能复制中文字符,过来看看 现在在学python, 等搞完python再来学这个。 看看学习学习 看看 楼主的这个程序有一个小问题,强迫症患者表示不能忍,
复制的文件比原文件多了一个字节,想来应该是 "out << endl;" 这一句导致的,
然后用16进制查看器打开发现多的一个字节内容是"0A",这个在Windows里面好像换行符,也应证了前面的猜想,
于是我把这一行注释掉再次测试,复制的文件和原文件就完全一样了。
最后,非常感谢楼主提供解决思路,我自己测试了好多方案都没有成功,直到看到这一篇帖子。
看看~~~ 为啥我的电脑运行就直接显示输入格式的?
页:
[1]
2