में कक्षा के ऑब्जेक्ट को लिखें और पढ़ें I C++ में बाइनरी फ़ाइल में और कक्षा से ऑब्जेक्ट लिखने और पढ़ने की कोशिश करते हैं। मैं अलग-अलग डेटा सदस्य नहीं लिखना चाहता हूं लेकिन पूरे ऑब्जेक्ट को एक बार लिखना चाहता हूं।द्विआधारी फ़ाइल
class MyClass {
public:
int i;
MyClass(int n) : i(n) {}
MyClass() {}
void read(ifstream *in) { in->read((char *) this, sizeof(MyClass)); }
void write(ofstream *out){ out->write((char *) this, sizeof(MyClass));}
};
int main(int argc, char * argv[]) {
ofstream out("/tmp/output");
ifstream in("/tmp/output");
MyClass mm(3);
cout<< mm.i << endl;
mm.write(&out);
MyClass mm2(2);
cout<< mm2.i << endl;
mm2.read(&in);
cout<< mm2.i << endl;
return 0;
}
चल उत्पादन बताते हैं कि mm.i का मूल्य माना जाता है कि बाइनरी फ़ाइल के लिए लिखा पढ़ा नहीं है और सही ढंग से आवंटित किया mm2.i को हालांकि
$ ./main
3
2
2
तो क्या गलत है: एक साधारण उदाहरण के लिए इसके साथ?
मुझे आमतौर पर किसी बाइनरी फ़ाइल में या किसी वर्ग के किसी ऑब्जेक्ट को लिखने या पढ़ने के बारे में क्या पता होना चाहिए?
धन्यवाद! क्या सी ++ में फ़ाइल लेखन और पढ़ने दोनों के लिए एक ऑब्जेक्ट को परिभाषित करना संभव है? मुझे याद है कि सी – Tim
@ टिम में यह संभव है।हां, आपके पास पढ़ने और लिखने के लिए एक फ़ाइल-स्ट्रीम खोला जा सकता है। –
मेरी राय में, यान रामिन का जवाब बहुत उपयोगी है। वह इस flushing विचार बताते हैं, और बढ़ावा के साथ बेहतर तरीका भी इंगित करता है। – MeM