2012-10-15 2 views
7

가능한 중복 : 프로그램의 끝 부분에있는 파일을 닫으려면이 잘 작동하지만, 필요하지 않습니다
do I need to close a std::fstream?ofstream은 파일을 자동으로 닫습니까?

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

?

+0

이 질문을 참조하십시오 http://stackoverflow.com/questions/4802494/do-i-need-to-close-a-stdfstream (심지어 그 중 하나는 복제본입니다) – Dirk

+0

@Dirk 방금 ifstream이 아닌 ifstream을 찾았습니다. 다음 번에 광범위하게 검색 할 것입니다. 원하면 내 질문을 닫으십시오. – truongnam1996

답변

16

ofstream은 소멸자가 호출 될 때, 즉 파일이 범위를 벗어날 때 파일을 닫습니다. 그러나 전화 close()은 확실히 해를 끼치 지 않으며 유지 보수 프로그래머에게 당신의 의도를 표현합니다. close()를 호출

또한 다음도 확인할 수 있기 때문에 가까운() 성공 여부를 확인할 수있는 failbit :

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

4

당신이 (결과를 확인하려면 가까운 호출 할 필요가있다 성공 또는 실패).

그렇지 않으면 스트림의 소멸자가 파일을 닫습니다.

관련 문제