ofstream不带参构造,纯粹创建对象
带参构造,打开文件,不存在则创建并打开;(所以不需要调用成员函数open继续打开了)
附一个C++文件拷贝的代码:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int Copy_File(string &src , string &des)
{
ifstream istrm(src,ios::binary);
if(!istrm.is_open())
{
cout << "failed to open "<<src <<endl;
throw -1;
}
ofstream ostrm(des,ios::binary);
if(!ostrm.is_open())
{
cout << "failed to open "<<des <<endl;
throw -1;
}
char *buf = new char[1024 * 1024];
while(1)
{
istrm.read(buf,sizeof (char) * 1024 * 1024);
ostrm.write(buf,istrm.gcount());
if(istrm.eof())
break;
}
istrm.close();
ostrm.close();
delete []buf;
return 0;
}
int main()
{
string src = "src.txt";
string des = "des.txt";
try {
Copy_File(src,des);
} catch (int num) {
cout << "copyfile failure" <<endl;
}
}