std :: ios_base :: खाया अंत में पाठ के अंत में कर्सर भी स्थित है, जबकि std :: ios_base_app पाठ संलग्न कर देता है (एक लिखने आपरेशन के साथ), लेकिन तब भी आप शुरुआत :)
से पढ़ सकते हैं
std :: ios_base :: trunc फ़ाइल को छोटा कर देता है, इसलिए यह खाली हो जाता है, जबकि std :: ios_base :: बस निर्दिष्ट करें कि आप स्ट्रीम को लिखना चाहते हैं।
मैं वर्तमान में मानक उद्धृत नहीं कर सकता (मेरे टैबलेट पर और एक्रोबैट रीडर मेटल प्रतिलिपि नहीं देगा) लेकिन आईएसओ 14882: 1 99 8 से अनुच्छेद 27.4.2.1.4 से जो जानकारी आप लिंक पर देख सकते हैं वह लगभग सटीक है : द्वारा धारा के अंत में
std::ios_base::app = append
संलग्न
std::ios_base::ate = At The End
खोलें "की तलाश [ing] प्रत्येक लिखने से पहले समाप्त करने के लिए" और immed की तलाश: http://cplusplus.com/reference/iostream/ios_base/openmode/
सारांश में iately उद्घाटन के बाद अंत में
std::ios_base::binary = binary
के रूप में पाठ को पढ़ने मोड
राइट मोड में
std::ios_base::out = output
ओपन में
std::ios_base::in = input
खुला विरोध किया बाइनरी में कार्यवाही करें
std::ios_base::trunc = truncate
खुली धारा को मिटा दें आईएनजी। ताकि आप/पढ़ने में एक स्ट्रीम को खोलने के साथ अंत में द्विआधारी लिख सकते हैं
ये मान, बस झंडे हैं:
std::ios_base::in | std::ios_base::out | std::ios_base::ate | std::ios_base::binary
उन मूल्यों का उपयोग करने का तरीका संबंध में, यह है के रूप में आप चाहते हैं। उन्हें std::ios_base
कक्षा में सार्वजनिक स्थिर फ़ील्ड के रूप में घोषित किया गया है (27.4.2 देखें) इस प्रकार std::ios::ate
या cout.binary
जैसे कुछ भी उपयोग करना संभव है!
अंक जहां ध्यान रखना चाहिए कि std::ios_base::ate
संकेत नहीं करता है std::ios_base::app
है और न ही std::ios_base::out
तात्पर्य std::ios_base::trunc
करता है। प्रत्येक फ़ील्ड का एक अलग अर्थ होता है, और उपयोग का एक अलग मामला है, हालांकि उनमें से अधिकतर अकेले उपयोग नहीं किए जा सकते हैं :)
'std :: ios_base :: in' और' std :: ios :: में होना चाहिए समान, यह आप पर निर्भर है। – oldrinb
@veer हाँ वे हैं, साथ ही साथ :: ios_base :: descendant :: में :) – Geoffroy