Возможный дубликат:
мне нужно закрыть std :: fstream?
int main() {
ofstream a("a.txt");
a << "A" << endl;
//a.close();
}
Это работает нормально, но не обязательно ли закрывать файл в конце программы?
ofstream
закроет файлы, когда вызывается его деструктор, т.е. когда он выходит из области видимости. Тем не менее, призывая close()
конечно, не приносит никакого вреда и выражает ваши намерения программистам по обслуживанию.
призвание close()
также позволяет проверить, было ли успешным завершение close (), потому что вы также можете проверить failbit
:
Необходимо закрыть вызов, если вы хотите проверить результат (успех или неудача).
В противном случае деструктор потока попытается закрыть файл для вас.