मैं एक नौसिखिया सीख रहा हूं और ऑनलाइन व्याख्यान से निम्नलिखित कोड को समझने की कोशिश कर रहा हूं। यह एक पूर्णांक के लिए एक स्ट्रिंग स्कैन करता है; यदि अक्षर का सामना करना पड़ता है, तो एसएसकेएनएफ विफल रहता है।sscanf व्यवहार/वापसी मूल्य
int n; char c;
if (sscanf(string, " %d %c", &n, &c) == 1)
//return the integer
else
// fail
मैं sscanf के लिए आदमी पृष्ठों पढ़ सकते हैं और अभी भी वापसी मान जाँच और क्यों इस कोड काम करता है के बारे में उलझन में हूँ गए हैं। वे कहते हैं कि "ये फ़ंक्शन असाइन किए गए इनपुट आइटमों की संख्या लौटाते हैं"।
यदि sscanf केवल वर्णों का सामना करता है, तो यह उन्हें & सी पर लिखता है ... लेकिन उस स्थिति में & n को लिखा नहीं गया होगा। इस मामले में, मैंने सोचा होगा कि एसएसकेएनएफ का रिटर्न वैल्यू अभी भी 1 होगा?
'sscanf''% d' खाने के लिए '% d' पर नहीं छोड़ेगा। यदि इसे पहले नंबर का सामना नहीं करना पड़ता है, तो यह 0 –
वापस आ जाएगा। किसी कारण से एसएसकेएनएफ ने क्रमशः अनुक्रम में (प्रारूप स्ट्रिंग प्रति) पूरी तरह से बच निकला। धन्यवाद! – drjimmie1976