C++,ifstream打开一个文件,关闭后,再打开一个文件出现错误

是这样的,先用ifstreamifs("1.txt");打开操作,然后ifs.close();再打开一个ifs.open("2.txt");内容却读不出来,应该怎么写?如... 是这样的,先用ifstream ifs("1.txt");打开操作,然后ifs.close();
再打开一个ifs.open("2.txt");内容却读不出来,应该怎么写?
如果用ifs1, ifs2是可以的,这个我知道,可是为什么呀???
展开
 我来答
tadvent
推荐于2016-01-19 · TA获得超过210个赞
知道小有建树答主
回答量:96
采纳率:0%
帮助的人:223万
展开全部
ifs.close();

ifstream 是有状态的对象,一个 ifstream 操作完后一般处于非正常状态,内部的 eofbit 标记 failbit 标记等可能已被设定。重新打开文件并不会清除这些标记,因此需要添加一步:
ifs.clear(); // 去除 ifs 中的错误标记(如文件末尾标记或读取失败标记等)

然后再打开新文件即可
ifs.open("2.txt");
skintown
2009-12-11 · TA获得超过209个赞
知道答主
回答量:122
采纳率:0%
帮助的人:82.2万
展开全部
ifstream ifs("1.txt");
这个是将1.txt做为输入流,
ifs.close只是关闭他,不是消毁他,
ifs 仍然是将1.txt做为输入
你再open一样可以用.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
afeihito
2009-12-11 · TA获得超过944个赞
知道小有建树答主
回答量:371
采纳率:100%
帮助的人:145万
展开全部
关注~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式