免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
论坛 程序设计 C/C++ [c++]
最近访问板块 发新帖
查看: 1651 | 回复: 3
打印 上一主题 下一主题

[c++] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-06-16 11:21 |显示全部楼层 |倒序浏览
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
  fstream *pfs = new fstream;
  pfs->open("/tmp/ttt", ios_base::in | ios_base:ut | ios_base::app);
  if(!pfs->is_open())
  {
    cout << "open fail." << endl;
  }
  pfs->close();
  delete pfs;
  return(0);
}


c++中ios_base::in | ios_base:ut | ios_base::app不是有效的打开模式

那将无法像fp = fopen(name, "a+" 这样打开文件.

想了想fstream类的设计, 怎么就这么别扭呢

拿fstream和FILE对比, FILE流的打开模式有

     r
     r+
     w
     w+
     a
     a+

   它们涵盖了所有的打开需求, 这样的设计很简洁, 很好用, 作者肯定是深思熟虑后精心设计的.

   而fstream不但要创建对象, 然后打开, 打开的时候还有"无效的打开模式", 还有不能读写追加
   模式打开.
   最后还要关闭, 据说关闭前还有clear, 最后释放内存.

   累!!!!

论坛徽章:
0
2 [报告]
发表于 2012-06-16 14:54 |显示全部楼层
bruceteen 发表于 2012-06-16 14:43
看你的代码风格,你应该是用Java/.net的吧?

“c++中ios_base::in | ios_base:ut | ios_base::app不是 ...



咬文嚼字:  c++标准库是c++重要的组成部分

我用的是centos  c++ lib 4.1.2

论坛徽章:
0
3 [报告]
发表于 2012-06-16 15:09 |显示全部楼层
本帖最后由 inet_addr 于 2012-06-16 15:10 编辑

怪我, 没说清楚环境

[xxxxx@host3 ~]$ g++ --version
g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-50)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


[xxxxx@host3 ~]$ uname -a
Linux vm-host3 2.6.18-238.el5 #1 SMP Thu Jan 13 16:24:47 EST 2011 i686 i686 i386 GNU/Linux

论坛徽章:
0
4 [报告]
发表于 2012-06-16 15:24 |显示全部楼层
bruceteen 发表于 2012-06-16 14:58
那你的意思是什么?是不是mingw4.6.1有bug?

因为你的代码在mingw4.6.1中无误运行通过


算了, 告诉你的根据

c++ primer 中文版 第四版 p256
   
    3. 打开模式的有效组合
        out
        out | app
        out | trunc
        in
        in | out
        int | out | trunc
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP