Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में बफर फ्लश का क्या अर्थ है?

बफर फ्लश की अवधारणा

बफर फ्लश का उपयोग कंप्यूटर डेटा को एक अस्थायी स्टोरेज क्षेत्र से कंप्यूटर की स्थायी मेमोरी में स्थानांतरित करने के लिए किया जाता है। जब हम किसी फाइल में कुछ बदलते हैं, तो स्क्रीन पर दिखाई देने वाले बदलाव अस्थायी रूप से एक बफर में स्टोर होते हैं।

C++ में एक्सप्लिसिट फ्लशिंग

C++ में, हम बफर को लिखने के लिए मजबूर करने के लिए एक्सप्लिसिटली फ्लश कर सकते हैं। यदि हम std::endl का उपयोग करते हैं, तो यह एक नई लाइन कैरेक्टर जोड़ता है और बफर को फ्लश भी करता है। यदि इसका उपयोग नहीं किया जाता है, तो हम एक्सप्लिसिटली flush का उपयोग कर सकते हैं।

उदाहरण 1: बिना फ्लश के (बफरिंग)

#include <iostream>
#include <thread>
#include <chrono>
using namespace std;

int main() {
    for (int x = 1; x <= 5; ++x) {
        cout << x << " ";
        this_thread::sleep_for(chrono::seconds(1)); // 1 सेकंड प्रतीक्षा
    }
    cout << endl;
    return 0;
}

आउटपुट

1 2 3 4 5  (5 सेकंड प्रतीक्षा के बाद एक साथ प्रिंट होगा)

उदाहरण 2: फ्लश के साथ (तत्काल आउटपुट)

#include <iostream>
#include <thread>
#include <chrono>
using namespace std;

int main() {
    for (int x = 1; x <= 5; ++x) {
        cout << x << " " << flush;  // प्रत्येक आउटपुट के बाद फ्लश
        this_thread::sleep_for(chrono::seconds(1));
    }
    cout << endl;
    return 0;
}

आउटपुट

1 2 3 4 5  (प्रत्येक संख्या 1 सेकंड के अंतराल पर प्रिंट होगी)

फ्लशिंग के तरीके

तरीकाविवरण
std::endlनई लाइन डालता है और बफर फ्लश करता है
std::flushकेवल बफर फ्लश करता है, नई लाइन नहीं डालता
std::cout.flush()cout ऑब्जेक्ट का मेंबर फ़ंक्शन
std::unitbuf मैनिपुलेटरप्रत्येक आउटपुट ऑपरेशन के बाद ऑटोमैटिक फ्लश सक्षम करता है

कब फ्लश करें?

  • इंटरैक्टिव प्रोग्राम्स में जहां तत्काल फीडबैक आवश्यक हो
  • लॉगिंग सिस्टम्स में जहां लॉग्स तुरंत लिखे जाने चाहिए
  • डिबगिंग के दौरान आउटपुट देखने के लिए
  • प्रदर्शन-महत्वपूर्ण कोड में अनावश्यक फ्लशिंग से बचें
  1. - C++ में volatile कीवर्ड का क्या अर्थ है?

    volatile का अर्थ दो चीजें हैं: वेरिएबल का मान आपके किसी भी कोड को बदले बिना बदल सकता है। इसलिए जब भी कंपाइलर वेरिएबल का मान पढ़ता है, तो वह यह नहीं मान सकता कि यह पिछली बार पढ़े गए मान के समान है, या यह अंतिम संग्रहीत मान के समान है, बल्कि इसे फिर से पढ़ा जाना चाहिए। एक volatile वेरिएबल में मान सं

  1. - C++ में restrict कीवर्ड का क्या अर्थ है?

    C++ में ऐसा कोई कीवर्ड नहीं है। C++ कीवर्ड्स की सूची C++ भाषा मानक के खंड 2.11/1 में पाई जा सकती है। restrict C भाषा के C99 संस्करण में एक कीवर्ड है न कि C++ में। C में, एक restrict-क्वालिफाइड पॉइंटर (या रेफरेंस) मूल रूप से कंपाइलर से एक वादा है कि पॉइंटर के स्कोप के लिए, पॉइंटर का लक्ष्य केवल उस प

  1. - C++ प्रोग्रामिंग भाषा क्या है?

    C++ एक प्रोग्रामिंग भाषा है जिसे ब्यार्ने स्ट्रॉस्ट्रप द्वारा 1979 में बेल लैब्स में विकसित किया गया था। C++ को एक मिडिल-लेवल भाषा माना जाता है, क्योंकि इसमें हाई-लेवल और लो-लेवल दोनों भाषा विशेषताओं का संयोजन होता है। यह C का सुपरसेट है, और वस्तुतः कोई भी वैध C प्रोग्राम एक वैध C++ प्रोग्राम है। C+