LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1445|回复: 4

c++读文件

[复制链接]
发表于 2005-4-18 17:44:39 | 显示全部楼层 |阅读模式
我的代码:
...std::string fn(...);
std::ifstream fs;

fs.open(fn.c_str());
   if (fs.is_open())
     res = 0;
   else
     res = -1;
第一次打开文件失败(文件不存在),两次执行(用另一文件名),打开成功。
然后用getline读取文件
fs.getline(buf, bufsz)或getline(fs, buf, '\n'),均返回假(文件当然是有内容的)
为什么呢 :ask
但是:如果第一次就成功打开,则读取成功
发表于 2005-4-18 20:24:26 | 显示全部楼层
把原码贴上来,注意缩进
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-19 09:43:05 | 显示全部楼层

知道了

1.应该用ifstream对象的good()方法检查是否打开成功
2.失败后用clear()方法重置状态位
这样就没问题了
回复 支持 反对

使用道具 举报

发表于 2005-4-19 11:46:41 | 显示全部楼层
完整点行不行?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-19 13:53:03 | 显示全部楼层

问题已解决

见三楼。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表