如需要向一个二进制文件尾部添加数据,则该文件的打开方式为
A)ios_base::app B)ios_base::binary | ios_base::out
C)ios_base::out D)ios_base::binary | ios_base::app
如需要向一个二进制文件尾部添加数据,则该文件的打开方式为 A)ios_base::app B)io
答案:2 悬赏:20
解决时间 2021-02-22 18:33
- 提问者网友:斯文败类
- 2021-02-22 05:42
最佳答案
- 二级知识专家网友:两不相欠
- 2021-02-22 06:43
A.″ab″ :对一个二进制文件添加
B.″rb+″ :读写打开一个二进制文件,只允许读写数据
C.″wb″:只写打开或新建一个二进制文件;只允许写数据。
D.″wb+″:读写打开或建立一个二进制文件,允许读和写。
B.″rb+″ :读写打开一个二进制文件,只允许读写数据
C.″wb″:只写打开或新建一个二进制文件;只允许写数据。
D.″wb+″:读写打开或建立一个二进制文件,允许读和写。
全部回答
- 1楼网友:茫然不知崩溃
- 2021-02-22 07:30
app,toseektotheendofastreambeforeeachinsertion.
ate,toseektotheendofastreamwhenitscontrollingobjectisfirstcreated.
in,topermitextractionfromastream.
out,topermitinsertiontoastream.
就是说,app是文件流被打开后,每次执行outfile<<"hello\nworld!\n";的过程中,文件指针都移动到文件的末尾,就是在末端进行append。
ate是文件流被第一次打开的时候将文件指针移动到文件末尾,然后你可以通过outfile.seekp(pos);将指针移动到pos位置,就是说,在执行outfile<<str;过程中,文件指针你可以自己控制。当然,要是不seek的话会保持在末尾。
至于你说的覆盖以前的文件,是因为你没有指定ios_base::in,而默认为ios_base::out,导致文件被覆盖。具体里面的实现我就不清楚了。呵呵。反正app+out没事,ate+out就不能实现其功能了。我怀疑是不是里面的标志位有逻辑的冲突。你可以细致的研究一下。等你的好消息。
voidmain()
{
ofstreamoutfile;
outfile.open("c:\\abc.txt",ios::ate|ios::out);
outfile<<"ddddd";
outfile.seekp(0);//movethefilepointertothebeginning.
outfile<<"a";
outfile.close();
}
可以看见a把第一个d覆盖了
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯