【发布时间】:2016-09-19 07:26:50
【问题描述】:
由于某种原因,以下代码无法创建新文件,即如果文件已经存在,它将覆盖它,否则它什么也不做:
#include <fstream>
int main()
{
std::fstream fs("test_out.log"); // <-- does not create a new file!
//std::fstream fs("test_out.log", std::ios_base::in | std::ios_base::out); // <-- does not create a new file!
fs << "TEST" << std::endl;
}
我做错了什么?
C++ 编译器:clang
系统:OS-X 10.9.5
【问题讨论】:
-
最后你应该写 fs.close()
-
@Android400:手动关闭没有意义。
fs对象在离开 main 范围时被销毁后,文件在 fs 被销毁时关闭。 -
是的,在这个例子中手动关闭没有意义,但在其他用法中它不是没用的。
-
@Android400 在其他情况下,其他代码可以实现其他事情,对吧。但这对我们有什么帮助呢?
-
@Android400 C++ 不是 Java。
fstream的析构函数关闭对象。