अच्छा() का उपयोग न करें! टेस्ट करता है, तो धारा failed or not है:
if (ss)
अच्छा आपको बताता है eofbit, badbit, या failbit के किसी भी, सेट कर रहे हैं अगर, जबकि असफल() badbit और failbit बारे में बताता है। जब तक आप पहले से ही जानते हैं कि स्ट्रीम विफल हो गई है, तो आप लगभग कभी भी ईफिट की परवाह नहीं करते हैं, इसलिए आप लगभग कभी भी अच्छा उपयोग नहीं करना चाहते हैं। ! कि धारा सीधे परीक्षण
ध्यान दें, जैसा कि ऊपर, बिल्कुल के बराबर है:
if (!ss.fail())
इसके विपरीत, एस एस ss.fail के बराबर है()।
सशर्त अभिव्यक्ति में निकासी का मेल:
ss >> d;
if (ss) {/*...*/}
हालांकि, आप शायद पूरा स्ट्रिंग हो सकती है यदि परीक्षण करना चाहते हैं:
if (ss >> d) {/*...*/}
बिल्कुल बराबर है एक डबल में परिवर्तित, जो थोड़ा और अधिक शामिल है। बूस्ट :: lexical_cast का प्रयोग करें जो पहले से ही सभी मामलों को संभालता है।
स्रोत
2011-02-07 00:50:08
"12.5 abc" के रूप में "एक स्ट्रिंग संख्यात्मक कि" माना जाएगा? यदि "नहीं", अब तक कोई भी उत्तर लागू नहीं होता है। – etarion