Possible Duplicate:
do I need to close a std::fstream?
int main() {
ofstream a("a.txt");
a << "A" << endl;
//a.close();
}
This works fine, but isn't it necessary to close the file at the end of the program?
Example# Explicitly closing a file is rarely necessary in C++, as a file stream will automatically close its associated file in its destructor. However, you should try to limit the lifetime of a file stream object, so that it does not keep the file handle open longer than necessary.
So no, we do not need to explicitly call fstream::close() to close the file. After open a file with fstream/ifstream/ofstream, it is safe to throw an exception without manually close the file first.
The close() function is used to close the file currently associated with the object. The close() uses ofstream library to close the file.
There is no difference. The file stream's destructor will close the file.
It is necessary to call close if you want to check the result (success or failure).
Otherwise, the stream's destructor will attempt to close the file for you.
ofstream
will close files when its destructor is called, i.e. when it goes out of scope. However, calling close()
certainly doesn't do any harm and expresses your intentions to maintenance programmers.
Calling close()
also allows you to check if the close() was successful because you can then also check the failbit
:
http://www.cplusplus.com/reference/iostream/ofstream/close/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With