सी ++ में फ़ाइल आईओ करने के लिए हम ऑफस्ट्रीम, ifstream और fstream कक्षाओं का उपयोग करते हैं।सी ++ फ़ाइल स्ट्रीम ओपन मोड अस्पष्टता
- ofstream: स्ट्रीम वर्ग फ़ाइलों
- ifstream पर लिखने के लिए: स्ट्रीम वर्ग फ़ाइलों
- fstream से पढ़ने के लिए: स्ट्रीम वर्ग दोनों पढ़ सकते हैं और से/फ़ाइलों को लिखने के लिए
स्ट्रीम ऑब्जेक्ट वाली फ़ाइल को जोड़ने की प्रक्रिया को "फ़ाइल खोलना" कहा जाता है। फ़ाइल खोलते समय हम उस मोड को निर्दिष्ट कर सकते हैं जिसमें फ़ाइल खोला जाना है। मेरी क्वेरी ios::out
और ios:in
मोड से संबंधित है।
जब मैं एक ofstream
वस्तु बना सकते हैं और ios::in
मोड के साथ फ़ाइल को खोलने, मैं सक्षम लिखने के लिए फ़ाइल में हूँ, लेकिन केवल तभी जब अपने पहले से बनाए (ios::out
मोड फ़ाइल के साथ भी अगर यह पहले से ही मौजूद नहीं होती हैं)।
लेकिन जब मैं ifstream
ऑब्जेक्ट बनाता हूं और ios::out
मोड के साथ फ़ाइल खोलता हूं, तो मैं फ़ाइल से पढ़ने में सक्षम हूं।
मेरा प्रश्न क्यों इन मोड (ios::in
/ios::out
) भाषा के आधार पर आपूर्ति की जाती है जब धारा (ifstream
/ofstream
) के प्रकार के ही निर्दिष्ट करता आपरेशन (इनपुट/आउटपुट) की जो प्रकार के रूप में प्रदर्शन किया जा रहा है?
भी क्यों इस अस्पष्ट उपयोग (ios::in
साथ ofstream
और ifstream
ios::out
के साथ) एक मामले में काम करता है और दूसरे में विफल रहता है (हालांकि केवल यदि फ़ाइल पहले से ही मौजूद नहीं है)?