Friday, 15 March 2013

stream - New to C++ and wondering what getline() and cin are doing in my code -


<पूर्व> #include & lt; iostream & gt; #include & lt; स्ट्रिंग & gt; नेमस्पेस एसटीडी का उपयोग करना; शून्य कंप्यूटफ़ीचर (स्ट्रिंग); Int main (int argc, const char * argv []) {string name; अदालत के & lt; & lt; "कृपया अपना पूरा नाम दर्ज करें" & lt; & lt; endl; Cin & gt; & gt; नाम; Cout & lt; & lt; "स्वागत" & lt; & lt; नाम & lt; & lt; endl; Cout & lt; & lt; "कृपया अपना पूरा नाम दोबारा दर्ज करें:"; गेटलाइन (पाप, नाम); Cout & lt; & lt; "धन्यवाद," & lt; & lt; नाम & lt; & lt; endl; वापसी 0; }

यह आउटपुट है:

  कृपया अपना पूरा नाम दर्ज करें जॉन स्मिथ वेलकमजॉन कृपया अपना पूरा नाम पुनः दर्ज करें: धन्यवाद, स्मिथ  

मुझे लगता है मेरा प्रश्न यह है कि कैन पहले नाम क्यों प्रिंट करता है और क्यों मिलती है () दूसरे नाम को छापें। क्या दोनों को प्रिंट करने का कोई तरीका है?

cin पहले शब्द को लेता है यह इनपुट है और दूसरा जो कि स्पेस से अलग है इनपुट बफर में प्रतीक्षा कर रहा है। इस प्रकार getline () को स्वचालित रूप से अंतिम नाम मिल जाता है और किसी भी उपयोगकर्ता इनपुट की प्रतीक्षा भी नहीं करता है।

आपको केवल getline (cin, name) का उपयोग करना चाहिए यदि आप स्ट्रिंग चर नाम में दोनों प्रथम और अंतिम नाम चाहते हैं।


No comments:

Post a Comment