Ofstream закрывает свои файлы автоматически?

Возможный дубликат:
мне нужно закрыть std :: fstream?

int main() {
ofstream a("a.txt");
a << "A" << endl;
//a.close();
}

Это работает нормально, но не обязательно ли закрывать файл в конце программы?

9

Решение

ofstream закроет файлы, когда вызывается его деструктор, т.е. когда он выходит из области видимости. Тем не менее, призывая close() конечно, не приносит никакого вреда и выражает ваши намерения программистам по обслуживанию.

призвание close() также позволяет проверить, было ли успешным завершение close (), потому что вы также можете проверить failbit:

http://www.cplusplus.com/reference/iostream/ofstream/close/

20

Другие решения

Необходимо закрыть вызов, если вы хотите проверить результат (успех или неудача).

В противном случае деструктор потока попытается закрыть файл для вас.

5

По вопросам рекламы [email protected]