C भाषा में scanf() और gets() दोनों फंक्शन्स एक्सटर्नल सोर्स से इनपुट प्राप्त करने और सिस्टम को इनपुट के रूप में पास करने के लिए परिभाषित हैं। अब दोनों फंक्शन्स में कुछ विशेषताओं का अंतर है।
C में scanf() और gets() के बीच महत्वपूर्ण अंतर निम्नलिखित हैं -
| Sr. No. | Key | scanf() फंक्शन | gets() फंक्शन |
|---|---|---|---|
| 1 | परिभाषा | scanf() फंक्शन कीबोर्ड से इनपुट पढ़ सकता है और दिए गए फॉर्मेट स्पेसिफायर के अनुसार उन्हें स्टोर करता है। यह इनपुट को तब तक पढ़ता है जब तक व्हाइटस्पेस, न्यूलाइन या EOF न मिल जाए। | दूसरी ओर gets() फंक्शन का उपयोग कीबोर्ड से इनपुट प्राप्त करने के लिए किया जाता है जब तक कि यह न्यूलाइन या EOF न मिल जाए। व्हाइटस्पेस को इनपुट के हिस्से के रूप में माना जाता है। |
| 2 | व्हाइटस्पेस | scanf() फंक्शन में व्हाइटस्पेस को इनपुट कैरेक्टर नहीं माना जाता और यदि बीच में कोई व्हाइटस्पेस मिलता है तो यह एक्सटर्नल सोर्स से इनपुट पढ़ना बंद कर देता है। | दूसरी ओर get() फंक्शन में व्हाइटस्पेस को इनपुट कैरेक्टर माना जाता है और यह बीच में किसी व्हाइटस्पेस के मिलने पर इनपुट सोर्स से पढ़ना बंद नहीं करता, यह इनपुट सोर्स से पढ़ना जारी रखता है। |
| 3 | सिंटैक्स | scanf() फंक्शन फॉर्मेट स्ट्रिंग और वेरिएबल्स के एड्रेस की सूची लेता है। जैसे scanf("%d", &number); | दूसरी ओर get() फंक्शन प्राप्त वैल्यू को स्टोर करने के लिए वेरिएबल का नाम लेता है। जैसे gets(name); |
| 4 | डेटा टाइप | scanf() फंक्शन विभिन्न डेटा टाइप्स के कई मान पढ़ सकता है। | दूसरी ओर get() फंक्शन केवल कैरेक्टर स्ट्रिंग डेटा प्राप्त करेगा। |