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

2025-04-30 17:02:42
推荐回答(3个)
回答1:

ifs.close();

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

然后再打开新文件即可
ifs.open("2.txt");

回答2:

ifstream ifs("1.txt");
这个是将1.txt做为输入流,
ifs.close只是关闭他,不是消毁他,
ifs 仍然是将1.txt做为输入
你再open一样可以用.

回答3:

关注~