关于用标准C++库的fstream来实现文件拷贝的问题

oldgameman 2003-05-15 11:38:22
要建立两个fstream来实现文件拷贝:
fstream s_file通过binary方式打开源文件;
fstream d_file通过binary方式打开目标文件;
因为考虑到源文件可能非常大(几百M),建立缓冲来存放二进制流不现实,所以考虑在for循环中用源文件指针对目标文件指针所指向的地址赋值的方式来实现拷贝。比如类似以下伪代码:
for(not s_file.eof())
{
*d文件指针=*s文件指针;
s文件指针++;
d文件指针++;
}

不知道fstream对象有没有类似的指针实现方式?

...全文
79 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
meteor135 2003-05-17
楼上实现最简洁!
回复
windoze 2003-05-17
std::ifstream is("in",ios::binary);
std::ofstream os("out",ios::binary);
os << is.rdbuf();
回复
ghtsao 2003-05-15
输错了:
s_file("sourcefile",ios::in|ios::binary);
d_file("destfile",ios::out|ios::binary);
应当是:
s_file.open("sourcefile",ios::in|ios::binary);
d_file.open("destfile",ios::out|ios::binary);
回复
ghtsao 2003-05-15
#define BLOCKSIZE 4096

#include <fstream.h>

fstream s_file;
fstream d_file;

s_file("sourcefile",ios::in|ios::binary);
d_file("destfile",ios::out|ios::binary);

BYTE buffer[BLOCKSIZE];
int len;
while(!s_file.eof())
{
len = s_file.read(buffer,BLOCKSIZE);
d_file.write(buffer,len);
d_file.flush();
};
回复
shornmao 2003-05-15
http://www.cpphelp.net/faq/Q5-1-2.html
回复
相关推荐
发帖
工具平台和程序库
创建于2007-09-28

2.4w+

社区成员

C/C++ 工具平台和程序库
申请成为版主
帖子事件
创建了帖子
2003-05-15 11:38
社区公告
暂无公告