c - getchar() and putchar() -


उदाहरण में:

  #include & lt; stdio.h & gt; मुख्य () {लंबे एनसी; एनसी = 0; जबकि (getchar ()! = EOF) ++ एनसी; Printf ("% ld \ n", nc); }  

मुझे काफी समझ में नहीं आता। Putchar () ने चरित्र को बाहर रखा होगा, लेकिन यह क्यों है कि ईओएफ के बाद यह सभी पात्रों को बाहर रखता है, और यह इन सभी पात्रों को याद कहां है? धन्यवाद।

इसे बफरिंग कहा जाता है और यह ऑपरेटिंग सिस्टम द्वारा किया जाता है। आम तौर पर यह लाइन बफरिंग करता है, जहां यह हर वर्ण को याद रखता है जिसे आप स्मृति में डालते हैं, और फिर इसे फ़ाइल में लिखते हैं, जब यह लाइन ब्रेक का सामना करता है यह संसाधनों पर बचाता है क्योंकि फ़ाइल संचालन अन्य कार्यों से ज्यादा समय लेता है। इसलिए हर एक चरित्र के साथ आउटपुट करने के बजाय, यह बफर में एकत्र करने के लिए वर्णों का एक गुच्छा का इंतजार करता है और एक बार में उन्हें लिखता है।

यह ओएस द्वारा किया गया एक चालाक पैंतरे वाला है जो आप, प्रोग्रामर, को इसके बारे में चिंता करने की जरूरत नहीं है बस अपने पात्रों को एक-एक करके फेंक दो और ओएस को अपने तरीके से बाकी तरीके से संभालें।


Comments

Popular posts from this blog

.net - C# List<T>.Find(x=>x.Rectangle.Contains(Point)) FAIL -

iphone - Smoothing a rounded stroke in Core Graphics -

Best practice for URL redirection in ASP.NET web application -