जैसा कि http://ideone.com/RdINqa में दिखाया गया है, std::stoul
नकारात्मक संख्याओं के लिए std::out_of_range
नहीं फेंकता है, लेकिन उन्हें चारों ओर लपेटता है। ऐसा क्यों है? ऐसा लगता है कि -4 unsigned long
प्रकार की सीमा से बाहर है इसलिए इसे फेंकना चाहिए।std :: stoul नकारात्मक संख्याओं को क्यों परिवर्तित करता है?
उत्तर
21,5 संख्यात्मक रूपांतरण
unsigned long stoul(const string& str, size_t *idx = 0, int base = 10);
प्रभाव: ... फोन [एस]
strtoul(str.c_str(), ptr, base)
... रिटर्न परिवर्तित परिणाम, यदि कोई हो।फेंकता है: ...
out_of_range
यदि परिवर्तित मूल्य वापसी प्रकार के लिए प्रतिनिधित्व मूल्यों की सीमा से बाहर है।
"रूपांतरित मूल्य" यहां strtoul
द्वारा दिया गया मान है। जो, ज़ाहिर है, unsigned long
प्रकार है और इसलिए stoul
के रिटर्न प्रकार के लिए प्रतिनिधित्व मूल्यों की सीमा के बाहर नहीं हो सकता है, जो unsigned long
भी है।
जहां तक मेरा बता सकते हैं, केवल stoi
out_of_range
, क्योंकि यह int
रिटर्न लेकिन strtol
जो long
रिटर्न का उपयोग करता फेंक कर सकते हैं।
इसके अलावा, जिस तरह से सी मानक strtoul
निर्दिष्ट करता है, यह स्ट्रिंग "-4"
स्वीकार करते हैं और -(unsigned long)4
के बराबर एक मूल्य के वापस जाने के लिए आवश्यक है। यह इस तरह से क्यों निर्दिष्ट है, मुझे नहीं पता।
- 1. mysql नकारात्मक संख्याओं को रोकता है
- 2. बिट्स नकारात्मक संख्याओं का प्रतिनिधित्व
- 3. नकारात्मक संख्याओं के साथ Array.slice सुरक्षित है?
- 4. कोई std :: stou क्यों नहीं है?
- 5. लिनक्स - क्यों कस्टम सिस्टम कॉल नकारात्मक संख्याओं के साथ ठीक से काम नहीं करता है?
- 6. मेरा हास्केल फ़ंक्शन नकारात्मक संख्या क्यों स्वीकार नहीं करता है?
- 7. लॉगलॉस नकारात्मक क्यों है?
- 8. TryParse नकारात्मक संख्याओं में विफल रहा
- 9. मेरा संस्करण एक std :: स्ट्रिंग को एक बूल में क्यों परिवर्तित करता है?
- 10. नकारात्मक शून्य फ्लोटिंग पॉइंट मान के लिए उपयोग करता है?
- 11. नकारात्मक संख्याओं का फिक्स्ड पॉइंट गुणा
- 12. क्यों std :: queue स्पष्ट() फ़ंक्शन का समर्थन नहीं करता है?
- 13. एंड्रॉइड में std :: stoul और std :: stoull का उपयोग कैसे करें?
- 14. हस्ताक्षर किए गए पूर्णांक पढ़ने पर नकारात्मक संख्याओं को पार्सिंग त्रुटियों के रूप में कैसे पहचानें?
- 15. एंडल (std :: cout) संकलित क्यों करता है
- 16. std :: std :: set के साथ काम क्यों नहीं करता है?
- 17. सी यह एक नकारात्मक संख्या क्यों प्रिंट करता है?
- 18. std :: condition_variable शेड्यूलिंग को अनुचित क्यों करता है?
- 19. यह सी प्रोग्राम नकारात्मक संख्या क्यों आउटपुट करता है?
- 20. क्यों .NET सही समय को परिवर्तित नहीं करता है?
- 21. पीआईपी अंडरस्कोर को डैश में परिवर्तित क्यों करता है
- 22. स्कैला सेक को सूची में क्यों परिवर्तित करता है?
- 23. क्यों अधिकांश ग्राफ एल्गोरिदम नकारात्मक संख्याओं को इतनी आसानी से अनुकूलित नहीं करते हैं?
- 24. इस सरणी में न्यूल का नकारात्मक क्यों नकारात्मक नहीं है?
- 25. नकारात्मक हेक्साडेसिमल को दशमलव
- 26. std :: map < std::map > स्मृति को अस्वीकार क्यों नहीं करता है?
- 27. सिद्धांत ओआरएम 2 नकारात्मक संख्याओं पर चयन करें
- 28. std :: string को basic_ostream में परिवर्तित करें?
- 29. क्या कोई std :: streambuf संस्करण है जो मेजबान को नेटवर्क बाइट ऑर्डर में परिवर्तित करता है?
- 30. क्यों std करता :: वेक्टर :: डालने सम्मिलन बिंदु
धन्यवाद, यह कष्टप्रद है – Kal