大龙的博客

常用链接

统计

最新评论

std::ifstream

if (!ip_filter_file.empty())
  {
   std::ifstream in(ip_filter_file.c_str());
   ip_filter filter;
   while (in.good())                           //good()解释如下
   {
    char line[300];
    in.getline(line, 300);
    int len = in.gcount();
    if (len <= 0) continue;
    if (line[0] == '#') continue;
    int a, b, c, d;
    char dummy;
    in >> a >> dummy >> b >> dummy >> c >> dummy >> d >> dummy;
    address_v4 start((a << 24) + (b << 16) + (c << 8) + d);
    in >> a >> dummy >> b >> dummy >> c >> dummy >> d >> dummy;
    address_v4 last((a << 24) + (b << 16) + (c << 8) + d);
    int flags;
    in >> flags;
    if (flags <= 127) flags = ip_filter::blocked;
    else flags = 0;
    if (in.fail()) break;
    filter.add_rule(start, last, flags);
   }
   ses.set_ip_filter(filter);
  } 

1) 如果一个流遇到文件结束符,则eof()返回true。
      if ( inOut.eof() )
          // ...
 
   2) 如果试图做一个无效的操作,例如seeking重定位操作超出了文件尾,则bad()返回true。
 
   3) 如果操作不成功,例如打开一个文件流对象失败,或遇到一个无效的输入格式,则fail()返回true。
      ifstream iFile( filename, ios_base::in );
      if ( iFile.fail() )   //不能打开
            error_message( ... );
   4) 如果其他条件都不为true,则good()返回true。

posted on 2006-12-22 10:50 大龙 阅读(3474) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理