C++文件流问题 打开方式ios::app和ios::ate有什么区别?

我看了书上的ios::app已追加方式打开文件,打开后文件指针在文件尾部,可改写。ios::ate打开已存在的文件,文件指针指向文件尾部,可读可写。这两个不能混用吗?看起... 我看了书上的 ios::app已追加方式打开文件,打开后文件指针在文件尾部,可改写。
ios::ate打开已存在的文件,文件指针指向文件尾部,可读可写。
这两个不能混用吗?看起来差不多但是在实际代码中改了程序却不能运行了。
展开
 我来答
flyfit
推荐于2016-02-17 · TA获得超过458个赞
知道小有建树答主
回答量:595
采纳率:66%
帮助的人:297万
展开全部
ios::app默认以写的方式打开文件
而ios::ate默认以读的方式打开文件
如果要打开的文件不存在,那么ios::app将生成这个文件(空),而ios::ate将打开失败
其实可以这样想:app是append(添加)的意思,这个词本身就带有写的意思,而ate是at end的意思,只是单纯的“找到文件尾的意思”没有指明是读还是写,所以就默认为以读方式打开文件。
当然,二者都可以跟ios::in和ios::out相配合,当和ios::in配合时,两者行为一致,都是以读方式打开;当和ios::out配合时,行为也是一致的,都是以写方式打开文件
追问

那这段代码中的ate怎么不能改成app呢?

风元修豆巳
2019-11-20 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.4万
采纳率:35%
帮助的人:777万
展开全部
用ios::ate的话,输出结果是这样的:1236而不是你说的456。
根据定义,ate的用法是:输入的第一个字节被放在文件最后,而剩下输入的字符将覆盖之前输入的字符,也就是光标仍然在原来文件的末尾,也就是3的后面。4和5都被6覆盖掉了。
希望采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式