इसके अलावा सबसे उपयुक्त समाधान खोज रहा था। इस ऑपरेटर के कार्यान्वयन में समस्याएं पैदा हो सकती हैं। और पूरी लाइन को पढ़ने के लिए हमेशा स्वीकार्य नहीं है, या एक इनपुट लाइन में विभिन्न प्रकारों को मिश्रण नहीं करते हैं।
समस्या को हल करने के लिए, जब आप cin
से कुछ डेटा को पढ़ने के लिए चाहते हैं, और अगर व्हाइटस्पेस सही ढंग से पिछले इनपुट ऑपरेशन के बाद निकाला गया था पता नहीं है, तो आप इस तरह कर सकते हैं:
std::string str;
std::cin >> std::ws >> str;
लेकिन आप कर सकते हैं ' नए इनपुट को प्रभावित न करने के लिए अंतिम इनपुट ऑपरेशन के बाद पिछली इनपुट ऑपरेशन को साफ़ करने के लिए इसका उपयोग करें, क्योंकि std::ws
सभी सफेद जगहों का उपभोग करेगा और पहले गैर-डब्ल्यूएस वर्ण या EOF
तक नियंत्रण वापस नहीं करेगा, इसलिए एंटर दबाएगा इनपुट प्रक्रिया। इस मामले में
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
जो अधिक लचीला है किया जाना चाहिए।
पीएस अगर max()
फ़ंक्शन जैसे "पहचानकर्ता अपेक्षित" के साथ त्रुटियां मिलीं, तो यह कुछ शीर्षलेख (उदाहरण के लिए, माइक्रोसॉफ्ट द्वारा) max
मैक्रोज़ के कारण हो सकती है; इस
#undef max
स्रोत
2016-08-08 23:22:26
कुछ और खुदाई से पता चलता है कि कैसे सूक्ष्म वर्णन किया जा सकता है का उपयोग करके निर्धारित किया जा सकता है: "निकालना समाप्त होता है जब ** अगले ** चरित्र या तो एक वैध खाली स्थान या एक अशक्त चरित्र, या यदि अंत- है ऑफ-फाइल पहुंची है। " –