自从c++11以来,我们可以将一个std::fstream
对象移动分配给另一个对象,但我无法找到说明,如果fstream
对象已经与文件关联(is_open()==true
),会发生什么。
因此,我的问题是,在下面的代码中,File1.txt
是否会被正确关闭,如果需要手动关闭它,如果我不关闭它会发生什么?
std::fstream file("File1.txt");
file = std::fstream("File2.txt"); //will this implicitly call file.close()?
file = std::fstream("File2.txt");
- eripstd::fstream
变量打开文件,只有在成功打开后才将其移动分配给原始变量。 - MikeMB