2012-10-15 16 views
7

Powiel możliwe:
do I need to close a std::fstream?Czy firmastreamstream automatycznie zamyka pliki?

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

Działa to dobrze, ale nie jest to konieczne, aby zamknąć plik po zakończeniu programu?

+0

Zobacz to pytanie http://stackoverflow.com/questions/4802494/do-i-need-to-close-a-stdfstream (i nawet ten jest duplikatem) – Dirk

+0

@Dirk Po prostu szukałem strumienia nie ifstream , Będę szukał dalej następnym razem. Zamknij moje pytanie, jeśli chcesz. – truongnam1996

Odpowiedz

16

ofstream spowoduje zamknięcie plików po wywołaniu destruktora, tzn. Gdy wykracza poza zakres. Jednak wywołanie close() z pewnością nie zaszkodzi i wyraża twoje zamiary programistom konserwacji.

Wywołanie close() pozwala również sprawdzić, czy w pobliżu() powiodło się, ponieważ można wtedy również sprawdzić failbit:

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

4

Należy zadzwonić blisko, jeśli chcesz, aby sprawdzić wynik (sukces lub porażka).

W przeciwnym razie destruktor strumienia podejmie próbę zamknięcia pliku.

Powiązane problemy