首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

"a+" "a" app|out之间的关系?解决思路

2012-02-05 
a+aapp|out之间的关系?今天注意到一个问题,就是关于以“添加”方式打开文件的实际效果:[[[[以下一律不考

"a+" "a" app|out之间的关系?
今天注意到一个问题,就是关于以“添加”方式打开文件的实际效果:

[[[[以下一律不考虑二进制文件!!!但可以推而广之]]]]


在C++标准中,合法的添加模式只有一种:
ios_base::app|ios_base::out
遵守标准的编译器(库)应当让试图通过其它含有app的文件打开方式组合
都open失败


而C标准中,则有两种添加模式,C99作如下陈述:
"a ":   append;   open   or   create   text   file   for   writing   at   end-of-file
"a+ ":   append;   open   or   create   text   file   for   update,   writing   at   end-of-file
同样,如果一个open   模式串中含有除此之外的添加模式,也将引起打开失败

但是,对于这两个陈述的区别,我有些糊涂了,实际写程序验证也没有发现任何差别,那么实际上这a和a+是否是一样的呢?


在C++标准文本中,明确说明ios_base::app|ios_base::out与 "a "是等价的,但没有与 "a+ "等价的东西,这是否说明a与a+也是同样的意思呢?

不知道各位谁注意到了这些,还请指教


[解决办法]
我认为在C中,a是追加(不能读,只能向文件尾增加数据),a++是可以对文件读写
[解决办法]
2个描述不一样,a+多了一个update
你应该再下翻几行:
When a file is opened with update mode ( '+ ' as the second or third character in the
above list of mode argument values), both input and output may be performed on the
associated stream.

热点排行