Monday, 15 September 2014

palindrome - c++ getline function does not let me input -


इसलिए मेरे पास एक पलंड्रोम प्रोग्राम है और यहां कोड हैं:

  #include & lt; iostream & gt; #include & lt; स्ट्रिंग & gt; # शामिल करें & lt; cctype & gt; नेमस्पेस एसटीडी का उपयोग करना; शून्य पालिंड्रोम (); शून्य तुलना करें दोआईएनटी (); बूल सत्यापन (कॉन्स्ट स्ट्रिंग & amp;); Int main () {int चयन; Cout & lt; & lt; "\ T \ t \ t मेनू \ n"; Cout & lt; & lt; "\ T \ t \ t ---- \ n"; Cout & lt; & lt; "\ T \ t \ t1। पिलंड्रोम"; Cout & lt; & lt; "\ N \ t \ t \ t2। दो पूर्णांकों की तुलना करें"; Cout & lt; & lt; "\ N \ t \ t \ t3। प्रोग्राम समाप्त करें \ n"; Cout & lt; & lt; "\ N \ t \ t \ t अपनी पसंद दर्ज करें:"; Cin & gt; & gt; चयन; जबकि (चयन & lt; 0 || चयन & gt; 4) {cout & lt; & lt; "\ T \ t \ n अमान्य प्रविष्टि कृपया एक उचित प्रविष्टि दर्ज करें।"; Cout & lt; & lt; "\ N \ n \ t \ t \ t अपनी पसंद दर्ज करें:"; Cin & gt; & gt; चयन; } अगर (चयन == 1) {cout & lt; & lt; "शब्द, वाक्य, वाक्य दर्ज करें: \ n"; स्ट्रिंग इनपुट; गेटलाइन (पिन, इनपुट); स्ट्रिंग इनपुट 2; (अहस्ताक्षरित int i = 0; i & lt; input.length (); i ++) {यदि (इस्लेनम (इनपुट [i])) {input2 + = toupper (इनपुट [i]); }} Cout & lt; & lt; इनपुट 2 & लेफ्टिनेंट; & lt; endl; अगर (सत्यापन (इनपुट 2)) {cout & lt; & lt; "वाक्यांश एक खलनायक है!" & Lt; & lt; endl; Cout & lt; & lt; "मेनू पर वापस & lt; प्रविष्ट करें & gt; कुंजी दबाएं" & lt; & lt; endl; } और {cout & lt; & lt; "वाक्यांश एक खलनायक नहीं है!" & Lt; & lt; endl; Cout & lt; & lt; "मेनू पर वापस & lt; प्रविष्ट करें & gt; कुंजी दबाएं" & lt; & lt; endl; } फ़फ़ल (stdin); cin.get (); प्रणाली ( "cls"); वापसी मुख्य (); } और अगर (चयन == 2) {compareTwoInt (); fflush (stdin); प्रणाली ( "cls"); वापसी मुख्य (); } और अगर (चयन == 3) {cout & lt; & lt; "\ T \ t अलविदा। प्रोग्राम को समाप्त करने के लिए & lt; Enter & gt; कुंजी दबाएं। \ N"; } फ़फ़ल (stdin); cin.get (); वापसी 0; } शून्य तुलना करें दोआइंट () {int first, second; Cout & lt; & lt; "\ N \ n अपने सकारात्मक पूर्णांक को दर्ज करें:"; Cin & gt; & gt; प्रथम; Cout & lt; & lt; "\ N अपने सकारात्मक पूर्णांक को दर्ज करें:"; Cin & gt; & gt; दूसरा; fflush (stdin); cin.get (); } Bool validation (const स्ट्रिंग और इनपुट) {वापसी इनपुट == स्ट्रिंग (input.rbegin (), input.rend ()); }  

किसी कारण के लिए जब मैं पल्ंड्रोम के लिए 1 का चयन करता हूं, यह मुझे शब्दों को लिखने नहीं देता, (दूसरे शब्दों में, यह मुझे इनपुट नहीं देता)

कंसोल सिर्फ कहते हैं:

एक शब्द, वाक्यांश, वाक्य दर्ज करें:

वाक्यांश पलड्रोम है!

मेनू पर वापस कुंजी दबाएं

"post-text" itemprop = "text">

जब आप palindrome के लिए 1 चुनते हैं, तो आप एंट दर्ज करें। इस प्रकार आपके इनपुट में न्यूलाइन के बाद नंबर 1 होता है आपका cin & gt; & gt; चयन; नंबर 1 पढ़ता है और फिर आपका getline (cin, इनपुट); नई लाइन पढ़ता है, जो इसे एक खाली रेखा के रूप में व्याख्या करता है आपने संख्या के बाद नए अक्षरों के इनपुट के साथ कुछ भी करने के लिए कोई कोड नहीं लिखा है, इसलिए कुछ भी समझदार नहीं होता।

इसके बजाय उसे टाइप करने की कोशिश करें 1foof & lt; enter & gt; आपका कोड पढ़ा जाएगा कि 1 के रूप में foof युक्त एक पंक्ति के बाद।


No comments:

Post a Comment