2010-03-20 12 views
7

a = getchar()scanf("%c",&a); के बराबर है?क्या getchar() स्कैनफ ("% c") और putchar() के बराबर printf ("% c") के बराबर है?

putchar(a)printf("%c",a); के समतुल्य a एक char चर है?

+0

इसके अलावा (, के रूप में बहुवचन) http://stackoverflow.com/questions/2507082/getc-vs-getchar-vs-scanf-for-reading-a-character-from-stdin – Lazer

उत्तर

7

आम तौर पर हाँ बोलते हुए वे वही हैं।

लेकिन वे कुछ नाटकीय तरीके से नहीं हैं। फ़ंक्शन getcharint वापस करने के लिए टाइप किया गया है और char नहीं है। ऐसा किया जाता है ताकि getchar दोनों संभव हो सके char मूल्य और अतिरिक्त त्रुटि कोड।

इसलिए जब निम्न खुशी से सबसे compilers में संकलित आप अनिवार्य रूप से दूर छोटा कर रहे हैं एक त्रुटि संदेश

char c = getchar(); 

समारोह scanf, हालांकि, आप सीधे एक char प्रकार का उपयोग करने की अनुमति देता है और में त्रुटि कोड से अलग प्रतिलाभ की मात्रा।

+1

नहीं त्रुटि संदेश मिलते हैं, " केवल "ईओएफ। लेकिन अन्यथा, यह सही है। यह भी कहा जाना चाहिए कि getchar() scanf() से कहीं अधिक कुशल है, क्योंकि लाइब्रेरी को प्रारूप स्ट्रिंग को पार्स करने की आवश्यकता नहीं है (और लिंकर को स्कैनफ़ के कोड के बड़े ब्लॉक में लिंक नहीं करना है ())। – DevSolar

1

वे वही काम करते हैं। हालांकि, अगर आपको पता है कि आप केवल वर्ण कर रहे हैं तो getchar और putchar अधिक कुशल होंगे, क्योंकि printf और scanf वेरिएंट को आपके अनुरोध को संसाधित करने के तरीके को निर्धारित करने के लिए प्रत्येक बार स्ट्रिंग को पार्स करना होगा। इसके अलावा, उन्हें निम्न स्तर की लाइब्रेरी में बुलाया जा सकता है जिसका अर्थ है कि आपको printf/scanf से लिंक नहीं होना चाहिए, यदि उन्हें कहीं और आवश्यकता नहीं है।

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