2012-10-15 16 views
7

संभव डुप्लिकेट:
do I need to close a std::fstream?क्या इसकी स्ट्रीम स्वचालित रूप से बंद हो जाती है?

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 मैंने अभी स्ट्रीम की तलाश नहीं की है , मैं अगली बार अगली बार खोज करूँगा। यदि आप चाहें तो मेरा प्रश्न बंद करें। – truongnam1996

उत्तर

16

ofstream फाइलों को बंद कर देगा जब इसके विनाशक को बुलाया जाता है, यानी जब यह दायरे से बाहर हो जाता है। हालांकि, close() पर कॉल करना निश्चित रूप से कोई नुकसान नहीं करता है और आपके इरादे रखरखाव प्रोग्रामर को व्यक्त करता है।

close() कॉलिंग भी अगर पास() सफल रहा था क्योंकि आप तो भी जांच कर सकते हैं आप की जाँच करने के लिए अनुमति देता है failbit:

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

4

यह आप परिणाम की जाँच करने के (चाहते हैं, तो पास कॉल करने के लिए आवश्यक है सफलता या विफलता)।

अन्यथा, स्ट्रीम का विनाशक आपके लिए फ़ाइल बंद करने का प्रयास करेगा।

संबंधित मुद्दे

 संबंधित मुद्दे