2012-08-27 12 views
33

क्या है मैं स्ट्रीम के बारे में सुन रहा हूं, अधिक विशेष रूप से फ़ाइल स्ट्रीम।सी ++: स्ट्रीम

तो वे क्या हैं?

क्या ऐसा कुछ है जिसमें स्मृति में कोई स्थान है?

क्या ऐसा कुछ है जिसमें डेटा है?

क्या यह सिर्फ एक फ़ाइल और ऑब्जेक्ट के बीच एक कनेक्शन है?

किसी भी मदद की सराहना की जाएगी

उत्तर

39

अवधि धारा एक निर्माण है कि आप भेजने के लिए या बाइट्स की संख्या ज्ञात नहीं प्राप्त कर सकते हैं की एक अमूर्त है। रूपक पानी की एक धारा है। आप डेटा लेते हैं, या इसे आवश्यकतानुसार भेजते हैं। इसे एक सरणी में तुलना करें, उदाहरण के लिए, जिसमें एक निश्चित, ज्ञात लंबाई है।

उदाहरण जहां धाराओं का उपयोग किया जाता है, उन फ़ाइलों को पढ़ने और लिखना, बाहरी कनेक्शन में डेटा प्राप्त करना या भेजना शामिल है। हालांकि धारा शब्द सामान्य है और विशिष्ट कार्यान्वयन के बारे में कुछ भी नहीं कहता है।

+2

तो यह एक "नदी धारा" की तरह है जो स्रोत से गंतव्य तक बहती है। और धारा नदी ही –

+0

संकल्पनात्मक रूप से है, आप इसे इस तरह से कह सकते हैं। –

+1

तो मैं एक स्ट्रीम को उस चीज के रूप में देख सकता हूं जो कंसोल से डेटा को संदर्भित करता है (उदाहरण के लिए) वैरिएबल –

8

आईओएसट्रीम एक फ्रंट एंड इंटरफ़ेस (std::istream, std::ostream) इनपुट और आउटपुट फ़ंक्शंस को परिभाषित करने के लिए उपयोग किया जाता है। धाराएं स्वरूपण विकल्पों को भी संग्रहीत करती हैं, उदाहरण के लिए, पूर्णांक आउटपुट के लिए उपयोग करने के लिए आधार और सभी प्रकार के अनुकूलन के लिए std::locale ऑब्जेक्ट रखें। उनका सबसे महत्वपूर्ण घटक std::streambuf पर एक सूचक है जो परिभाषित करता है कि वर्णों के अनुक्रम का उपयोग कैसे करें, उदाहरण के लिए, एक फ़ाइल, एक स्ट्रिंग, स्क्रीन पर एक क्षेत्र इत्यादि। विशेष रूप से फ़ाइलों और तारों के लिए विशेष स्ट्रीम बफर प्रदान किए जाते हैं और कक्षाएं आसान निर्माण के लिए स्ट्रीम बेस कक्षाएं प्रदान की जाती हैं। IOStreams लाइब्रेरी की पूरी सुविधाओं का वर्णन करना पूरी किताब को बहुत अधिक भर सकता है: C++ 2003 में लगभग आधा लाइब्रेरी अनुभाग संबंधित कार्यक्षमता स्ट्रीम करने के लिए समर्पित था।

2

फ़ाइल सिस्टम टर्मिनल, डिस्क ड्राइव, टेप ड्राइव इत्यादि सहित विभिन्न प्रकार के उपकरणों के साथ काम करने के लिए डिज़ाइन किया गया है, भले ही प्रत्येक डिवाइस अलग हो, फ़ाइल सिस्टम प्रत्येक को लॉजिकल स्ट्रीम नामक डिवाइस में बदल देता है। स्ट्रीम डिवाइस स्वतंत्र हैं इसलिए डिस्क फ़ाइल और टेप फ़ाइल लिखने के लिए एक ही फ़ंक्शन का उपयोग किया जा सकता है। अधिक तकनीकी अवधि धारा में प्रोग्रामर और वास्तविक डिवाइस के बीच एक अमूर्तता प्रदान की जाती है।

5

स्ट्रीम रैखिक कतार है जो प्रोग्राम को फ़ाइल से जोड़ता है और दोनों दिशाओं में डेटा के प्रवाह को बनाए रखता है। यहाँ स्रोत किसी भी फाइल, आई/ओ डिवाइस, हार्ड डिस्क, सीडी/डीवीडी आदि

मूल रूप से धारा है है अगर दो प्रकार 1.Text स्ट्रीम 2.Binary धारा

पाठ स्ट्रीम: यह का एक क्रम है चरित्र लाइन में व्यवस्थित करता है और प्रत्येक पंक्ति को नई लाइन (यूनिक्स) द्वारा समाप्त किया जाता है।

बाइनरी स्ट्रीम: यह डेटा है क्योंकि इसे किसी भी संशोधन के बिना कंप्यूटर की मुख्य मेमोरी में आंतरिक रूप से कोड किया गया है।

+0

मैंने 2012 में इस सवाल को वापस पूछा: "डी अजीब इसे अभी भी ध्यान में देख रहा है। धन्यवाद –

+0

यह उत्तर समझने के लिए और अधिक आसान है! –

संबंधित मुद्दे