according documentation:
मैं कैसे सुनिश्चित कर सकता हूं कि strtol() सफलतापूर्वक लौट आए हैं?
सफलता पर, समारोह एक लंबे पूर्णांक मान के रूप में परिवर्तित अभिन्न संख्या दिखाता है। यदि कोई वैध रूपांतरण नहीं किया जा सकता है, तो शून्य मान वापस कर दिया जाता है। यदि सही मान प्रतिनिधित्व योग्य मानों की सीमा से बाहर है, LONG_MAX या LONG_MIN वापस कर दिया गया है, और वैश्विक परिवर्तनीय त्रुटि को ERANGE पर सेट किया गया है।
strtol(str, (char**)NULL, 10);
अगर str
"0\0"
कैसे समारोह में विफल रहा है या केवल "0"
संख्या के साथ स्ट्रिंग परिवर्तित कर दिया है, तो पता करने के लिए कर रहा है पर विचार करें?
आप पर विचार किया है 'scanf'? –
@StevenLuu: 'scanf' में भी त्रुटि प्रबंधन को और भी खराब है। कुछ कार्यान्वयन आम तौर पर आपको अतिप्रवाह पर कचरा देंगे, लेकिन किसी भी तरह से त्रुटि को संकेत दिए बिना। –