c++输出文件流对象如何实现不覆盖写入
3个回答
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
附:楼上的代码是瞎毕祥抄的,根本不符合覆盖的要求。
参数:
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();
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();
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询