通过C++的文件流对象实现简单的文件拷贝
具体实现步骤如下:
- 添加文件流对象头文件
- 创建文件流对象
- 打开源文件,创建新文件
- 分配一块堆内存用于文件拷贝
- 进行文件拷贝
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc,char **argv)
{
cout << "Hello World!" << endl;
if( argc < 3 )
{
perror("参数格式不对\n");
return 0;
}
//创建文件流对象
fstream fin,fout;
//以只读方式打开文件
fin.open(argv[1],ios_base::in);
//以只写方式打开一个文件,如果文件已经存在则清空
fout.open(argv[2],ios_base::out | ios_base::trunc);
if( !fin.is_open() || !fout.is_open())
{
perror("打开文件失败\n");
exit(0);
}
//分配堆空间
char *buf = (char *)calloc(1,1024);
//复制文件内容
while( !fin.eof() )
{
fin.read(buf,1024);
fout.write(buf,fin.gcount());
}
//关闭文件,释放内存
fin.close();
fout.close();
free(buf);
return 0;
}