मैं हाल ही में एक जिज्ञासु मामले पर ठोकर खाई (कम से कम मेरे लिए, के बाद से मैं इस से पहले का सामना करना पड़ा नहीं था) .. पर विचार करें नीचे सरल कोड: -स्कैनफ() उत्सुक व्यवहार!
int x;
scanf("%d",&x);
printf("%d",x);
ऊपर कोड एक सामान्य पूर्णांक इनपुट लेता है और प्रदर्शित करता है परिणाम अपेक्षा के अनुरूप ..
अब, अगर मैं निम्नलिखित करने के लिए उपरोक्त कोड संशोधित: -
int x;
scanf("%d ",&x);//notice the extra space after %d
printf("%d",x);
यह एक और अतिरिक्त इनपुट में ले जाता है इससे पहले कि यह printf बयान के परिणाम देता है .. मुझे नहीं पता समझें क्यों एक अंतरिक्ष resu scanf() .. किसी को भी मेरे लिए इस व्याख्या कर सकते हैं के व्यवहार के परिवर्तन में लीटर ....
स्कैनफ EVIL है और इससे बचा जाना चाहिए - तो मैं कहें, और अन्य :): http: // stackoverflow।कॉम/प्रश्न/456303/कैसे-से-वैध-इनपुट-उपयोग-स्कैनफ़ – Bukes
@ बुक्स: हाँ, यदि आपको नहीं पता कि प्रोग्राम कैसे करें, या दस्तावेज़ीकरण पढ़ें, तो आपको C –
@Chris Dodd - 'scanf' का उपयोग नहीं करना चाहिए न्यूलाइन और अन्य सफेद जगहों के बीच अंतर नहीं कर सकते हैं। यदि आप अपने इनपुट पर अच्छा नियंत्रण चाहते हैं, या त्रुटियों से संवेदना से पुनर्प्राप्त करने की क्षमता चाहते हैं, तो आप सी –