提问人:xmllmx 提问时间:5/10/2021 最后编辑:xmllmx 更新时间:5/10/2021 访问量:165
std::ofstream 是否保证如果打开新文件,旧的打开文件将被关闭?
Does std::ofstream guarantee the old open file will be closed if opening new one?
问:
#include <fstream>
int main()
{
auto fout = std::ofstream("/tmp/a.txt");
fout.open("/tmp/b.txt"); // Will "/tmp/a.txt" be closed?
fout.open("/tmp/c.txt"); // Will "/tmp/b.txt" be closed?
}
如果打开新文件,是否保证旧的打开文件将被关闭?std::ofstream
答:
3赞
Igor Tandetnik
5/10/2021
#1
第二次和后续调用将失败。
[filebuf.members]
2 效果: 如果 ,返回一个空指针。否则。。。basic_filebuf* open(const char* s, ios_base::openmode mode);
is_open() != false
[ofstream.members]
3 效果:调用 .如果该函数不返回 null 指针 调用 ,否则调用void open(const char* s, ios_base::openmode mode = ios_base::out);
rdbuf()->open(s, mode | ios_base::out)
clear()
setstate(failbit)
评论
ofstream::open
open
operator ==