स्टैंडर्ड की जांच कर रहा, खंड 27.8.1.3 विभिन्न ios
संशोधक (जैसे ios::in
और ios::out
) की चर्चा है, और उन्हें सी fopen()
मापदंडों के नक्शे। मानक के मुताबिक, यदि फ़ाइल खोलने पर निर्दिष्ट कोई संशोधक नहीं हैं, तो खुले विफल हो जाते हैं।
27.8.1.9 में, हम पाते हैं कि ofstream
इस तरह काम करता है, लेकिन ios::out
स्वचालित रूप से निर्दिष्ट है। इसलिए, मूल प्रश्न का उत्तर यह है कि दोनों ठीक वही काम करेंगे।
मुझे नहीं पता कि लोग fstream
के साथ ios::in
या ios::out
के बिना क्यों खुल रहे हैं, लेकिन मानक के मेरे पढ़ने का कहना है कि इसे काम नहीं करना चाहिए। मुझे 27.8.1.3 के अन्य लोगों के रीडिंग में दिलचस्पी होगी। अब मैं परीक्षण किया मैं क्या जवाब दिया गया है के आधार पर कई कोड और इस सार के साथ आया था: ofstream का उपयोग कर
: ios :: बाहर डिफ़ॉल्ट भी है सब लोग हैं, जो मुझे जवाब के लिए
स्रोत
2010-02-09 18:17:38
कोई यदि आप एक fstream का उपयोग करते हैं, तो आप न तो आईओएस :: आउट और न ही आईओएस :: लिख सकते हैं और आप अभी भी फ़ाइल से लिखने और पढ़ने में सक्षम होंगे .. तो क्या यह हमेशा एक ही लेखन नहीं है Ios :: लिख नहीं है? –
@Imengineer: मुझे यह सुनिश्चित करने के लिए जांचना होगा, लेकिन अगर मेमोरी डिफ़ॉल्ट रूप से इनपुट और आउटपुट दोनों के लिए खोला जाता है, लेकिन यदि आप आईओएस :: आउट निर्दिष्ट करते हैं, तो यह केवल आउटपुट के लिए खोला जाता है, और यदि आप निर्दिष्ट करते हैं ios :: में, यह केवल इनपुट के लिए खोला गया है। हालांकि यह स्मृति से जा रहा है, यह निश्चित रूप से गारंटी नहीं है। –