fstream बहुत अच्छे हैं लेकिन मैं थोड़ा गहराई से जाऊंगा और आपको RAII के बारे में बताऊंगा।
क्लासिक उदाहरण के साथ समस्या यह है कि आपको फ़ाइल को अपने आप से बंद करने के लिए मजबूर होना पड़ता है, जिसका अर्थ है कि आपको इस आवश्यकता के लिए अपने आर्किटेक्चर को मोड़ना होगा। आरएआईआई आपके लिए फाइल बंद करने के लिए सी ++ में स्वचालित विनाशक कॉल का उपयोग करता है।
Update: seems that std::fstream already implements RAII so the code below is useless. I'll keep it here for posterity and as an example of RAII.
class FileOpener
{
public:
FileOpener(std::fstream& file, const char* fileName): m_file(file)
{
m_file.open(fileName);
}
~FileOpeneer()
{
file.close();
}
private:
std::fstream& m_file;
};
अब आप इस वर्ग को अपने कोड में इस तरह इस्तेमाल कर सकते हैं:
int nsize = 10;
char *somedata;
ifstream myfile;
FileOpener opener(myfile, "");
myfile.read(somedata,nsize);
// myfile is closed automatically when opener destructor is called
सीखना कि आरएआईआई कैसे काम करता है आपको कुछ सिरदर्द और कुछ प्रमुख मेमोरी प्रबंधन कीड़े बचा सकता है।