Scanf आणि fgets मधील फरक

Anonim

Scanf vs fgets

Scanf आणि f प्रोग्राम म्हणजे C प्रोग्रामिंगमधील दोन सामान्यतः वापरल्या जाणार्या फंक्शन्स फ्लेक्स आहेत आणि ज्या वेळापर्यंत इतर प्रोग्रामिंग भाषांमध्ये कार्यान्वित केले गेले आहेत. स्कॅनफाफ स्कॅन स्वरूपनांचा संदर्भ देते. Scanf वैध टोकनच्या इनपुटवर लक्ष केंद्रीत करतो आणि हे निर्दिष्ट केलेल्या स्वरूपावर अवलंबून असते अंमलबजावणीतील त्यांच्या मतभेद आणि त्यांच्या संपूर्ण संसाधनांवर लक्ष केंद्रित करणे ही संपूर्ण प्रक्रियेची संपूर्णपणे अंमलबजावणी करण्यात मदत होते हे दोघांमधील फरक समजून देण्यासाठी एक चांगला मार्ग आहे. Fgets, दुसरीकडे, इतर ग्रंथालयांमध्ये वापरण्यासाठी स्थापनेपासून पसरलेला सी लायब्ररीचे कार्य आहे.

आधुनिक दिवसाच्या प्रोग्रॅमिंगमध्ये fgets चा वापर निर्मुलन केला जातो, कारण ही C89 आणि C99 च्या मानकांमधे आहे जे मागास सहत्वता अनुमत करते. असे असले तरी, संपूर्ण परिणाम म्हणजे चालवल्या जाणार्या कोड आहेत हे सुनिश्चित करण्यासाठी fgets चा वापर फार चांगल्या प्रकारे केला जावा. Fgets वापरून प्रोग्रामर म्हणून पुरेशी बफर साठी परवानगी आवश्यक वर्ण संख्या जास्तीत जास्त उच्च मर्यादा जाणीव असणे आवश्यक आहे. डेटाचे पूर्वीचे ज्ञान नसल्यामुळे हे एक अवघड आव्हान आहे. या डिझाईनवरून संगणकीकरणाचे शोषण करण्यास परवानगी देणारा एक गेट बफर ओव्हरफ्लोच्या प्रसंगी प्रदान केला जातो. उपरोक्त कारणांसाठी, mops fgets वापरण्यासाठी नवीन प्रोग्राम्सची शिफारस केलेली नाही.

scanf फंक्शन जुळणार्या सर्व उपलब्ध आयटम परत करतो. हे लक्षात घेणे महत्वाचे आहे की प्रत्येक वेळी आपल्याला विनंती केल्याप्रमाणे समान संख्येत वस्तू मिळतील. विनंती केलेल्या आयटमपेक्षा आयटम कमी असू शकतात. एखाद्या प्रवाहात थैमान चालू झाल्यास, एक EOF त्रुटी दिली जाते. कोणत्याही समान बाबींच्या जुळणीपूर्वी रीडिंग अपयशी झाल्यास हीच स्थिती पाहता येते. Scanf फंक्शन नंतर यशस्वीरित्या जुळलेल्या आयटमची एकूण संख्या परत करते, ज्याची संख्या विनंती केलेल्या संख्यापेक्षा कमी असू शकते.

Fgets आणि scanf दरम्यान आणखी एक फरक हॅट आढळते त्यात दिलेल्या फाईलमधून वाचण्यासाठी fgets ची शक्यता समाविष्ट आहे, ती उपलब्ध आहे. Scanf केवळ मानक इनपुटमधून वाचतो, कोणत्याही फाईलमध्ये नाही. हे लक्षात घेणे देखील महत्त्वाचे आहे की fgets केवळ एका फाइलवरून दिलेल्या वेळेत मजकूर ओळी वाचते. स्कॅनफ, एकावेळी मजकूर एक ओळी वाचू शकते, परंतु ते रुपांतरण संकेतांमधे हाताळण्यास, स्ट्रिंगच्या प्रकारांपासून येत आहे. Fgets बर्याच प्रकरणांमध्ये डेटाच्या दिलेल्या ओळी वाचण्यासाठी वापरले जातात आणि scanf डेटाच्या विच्छेदनासाठी वापरला जातो.

फरक म्हणून समोर येणारी आणखी एक गोष्ट म्हणजे scanf तपासणी मर्यादित करत नाही, तर fgets एक उत्तम पर्याय प्रदान करते जे मूल्यांकन पूर्ण करण्यास परवानगी देऊ शकतात. स्कॅन्फचा उपयोग नंतर fgets द्वारे तपासल्या गेल्यानंतर त्यांची मर्यादा निश्चित करण्यासाठी वापरली जाऊ शकते.

लक्षात घेण्यासारख्या आणखी एक महत्त्वाची गोष्ट म्हणजे scanf विशिष्ट नमुन्याचे शोधणे जे विशिष्ट इनपुटवर स्वरूप आर्ग्युमेंटमध्ये परिभाषित केले आहे.या इनपुटला stdin असे म्हटले जाते. या प्रकरणात दिलेल्या इनपुट स्ट्रिंग फाइल असू शकते, वापरलेल्या वेरिएंटवर आधारित Fgets, दुसरीकडे, विशेषतः फाइल एक ओळ वाचतो आणि बफर च्या आउटपुट या कॉपी करतो. सामान्यत:, असे म्हटले जाऊ शकते की scanf डीफॉल्ट वापरामध्ये वाचल्या जाऊ शकणा-या विशिष्ट वर्णांवर कोणत्याही मर्यादांसह येत नाही. Fgets मध्ये जास्तीत जास्त वर्ण आहेत जे वाचू शकता.

सारांश

स्कॅनफ स्कॅन स्वरूपात संदर्भित करतो.

Scanf वैध टोकनच्या इनपुटवर केंद्रित आहे

निर्दिष्ट केलेल्या स्वरूपावर अवलंबून स्कॅनफ इनपुट्स विश्लेषित करते

Fgets सी चे कार्य आहेत.

Scanf फक्त मानक इनपुट वाचते

Fgets केवळ एका फाइलवरून दिलेल्या वेळेत मजकुराची एक ओळ वाचते.

स्कॅनफ मर्यादेची तपासणी करीत नाही. <