यह प्रश्न फ़ाइलों को डेटा पढ़ने और लिखते समय ifstream और ऑफस्ट्रीम के व्यवहार से संबंधित है।सी ++ ifstream, ऑफ़स्ट्रीम: कच्चे पढ़ने()/लिखने() कॉल और बाइनरी मोड में फ़ाइल खोलने के बीच क्या अंतर है?
आसपास stackoverflow.com मुझे पता है कि operator<<
(धारा प्रविष्टि ऑपरेटर) वस्तुओं धर्मान्तरित जैसे उत्पादन से पहले पाठ में प्रतिनिधित्व दोगुना हो जाता है, और read()
करने के लिए कॉल और write()
पढ़ने और कच्चे डेटा लिखने के रूप में यह में संग्रहित है में कामयाब रहे पढ़ने से क्रमशः स्मृति (बाइनरी प्रारूप)। संपादित करें: यह बहुत स्पष्ट है, यहां कुछ भी अप्रत्याशित नहीं है।
मुझे यह भी पता चला कि द्विआधारी मोड में एक फ़ाइल खोलने से विभिन्न ऑपरेटिंग सिस्टमों द्वारा आवश्यक न्यूलाइन अक्षरों के स्वचालित अनुवाद को रोक दिया जाता है।
तो मेरा सवाल यह है: क्या यह स्वचालित अनुवाद है, उदाहरण के लिए; \n
से \r\n
पर फ़ंक्शन कॉल करते समय read()
और write()
? या यह व्यवहार operator<<
के लिए विशिष्ट है। (और operator>>
।)
ध्यान दें कि यहां एक समान लेकिन थोड़ा कम विशिष्ट प्रश्न है। यह एक निश्चित जवाब नहीं देता है। Difference in using read/write when stream is opened with/without ios::binary mode
[बाइनरी और टेक्स्ट मोड] (http://en.cppreference.com/w/cpp/io/c#Binary_and_text_modes) –
@ πάνταῥεῖ यह प्रश्न का उत्तर नहीं देता है। ऐसा लगता है कि ओपी बाइनरी और टेक्स्ट मोड के बीच अंतर को समझ गया। समस्या यह है कि सी ++ की धारा में स्वरूपित और अनफॉर्मेटेड I/O की अतिरिक्त अवधारणा है। जैसा कि मैंने इसे समझा, यह सवाल यह है कि वे दोनों कैसे बातचीत करते हैं। – ComicSansMS
तो क्या यह व्यवहार पढ़ने()/लिखने() या नहीं पढ़ने के लिए भी लागू होता है? – user3728501