c++输出文件流对象如何实现不覆盖写入

 我来答
匿名用户
2013-07-12
展开全部
参见: http://www.cppblog.com/sunraiing9/archive/2007/03/21/20299.html在fstream类中,有一个成员函数open(),void open(const char* filename,int mode,int access);
参数:
filename: 要打开的文件名
mode: 要打开文件的方式
access: 打开文件的属性
打开文件的方式在类ios(是所有流式I/O类的基类)中定义,常用的值如下:

ios::app: 以追加的方式打开文件
ios::ate: 文件打开后定位到文件尾,ios:app就包含有此属性
ios::binary: 以二进制方式打开文件,缺省的方式是文本方式。两种方式的区别见前文
ios::in: 文件以输入方式打开
ios::out: 文件哪数棚以输出方式打开
ios::nocreate: 不建立文件,所以文件不存在时打开失败
ios::noreplace:不覆盖文件,所以打开文件李则时如果文件存在失败
ios::trunc: 如果文件存在,把文件长度设为0
为了不覆盖,可以用“或”把以上属性连接起来,如ios::out | ios::app
附:楼上的代码是瞎毕祥抄的,根本不符合覆盖的要求。
匿名用户
2013-07-12
展开全部
定义多个文件流即可。不过要注意系统运行打开文件的上限。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2018-04-09
展开全部
fstream infile,outfile(n)圆敏;
infile.open( "infile.dat ",ios::in|ios::binary);
outfile(n).open( "outfile(n).dat "弯枣,ios::in|ios::binary);

if(!infile)
{
cout < < "infile.dat can 't open.\n ";
abort();
}

for(int j=0;j <n;j++)
{
for(int l=0;l <埋腔拆=Length;l++)
{

infile.read((char *)&l,sizeof(char));
outfile(j).write((char *)&l,sizeof(char));
}
outfile(j).close();
}
infile.close();
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式