क्या मुझे पर मैन्युअल रूप से कॉल करने की आवश्यकता है जब मैं std::ifstream
का उपयोग करता हूं?क्या मुझे ifstream मैन्युअल रूप से बंद करने की आवश्यकता है?
उदाहरण के लिए, कोड में:
std::string readContentsOfFile(std::string fileName) {
std::ifstream file(fileName.c_str());
if (file.good()) {
std::stringstream buffer;
buffer << file.rdbuf();
file.close();
return buffer.str();
}
throw std::runtime_exception("file not found");
}
मैं file.close()
मैन्युअल कॉल करने के लिए की जरूरत है? ifstream
फाइलों को बंद करने के लिए RAII का उपयोग नहीं करना चाहिए?
+1 - कम से कम एक जो जानता है कि आरएआईआई का क्या अर्थ है :-) – Milan
+1 मुझे नहीं पता था कि आरएआईआई इसे संभालती है ... मुझे लगता है कि आप रोजाना कुछ नया सीखते हैं – TStamper
फ़ाइल को बंद करने के लिए एक नेस्टेड स्कोप का उपयोग करना है पूरी तरह से कृत्रिम - यदि आप इसे बंद करना चाहते हैं, तो उस पर नज़दीकी() कॉल करें। –