दिलचस्प पोस्ट
जावास्क्रिप्ट में वस्तु की सरणी को स्ट्रिंग बदलने का सर्वोत्तम तरीका? UIView फ्रेम, सीमा और केंद्र HttpClient को एचटीटीपी हेडर्स जोड़ना क्या मैं जीसीसी मुझे बता सकता हूँ जब एनएएन या आईएनएल में रनटाइम पर गणना परिणाम होता है? कैसे डिफ़ॉल्ट पैकेज से एक वर्ग को आयात करें आप विंडो को कैसे स्थानांतरित होने से रोकते हैं? एचपी प्रॉक्सी के पीछे PHP कम्पोज़र जावा: BufferedImage बाइट सरणी और वापस करने के लिए विशिष्ट ग्रहण बिल्ड कॉन्फ़िगरेशन के लिए एक कीबोर्ड शॉर्टकट असाइन करना 0/1 के बजाय वाई / एन टाइप बूलियन के लिए हाइबरनेट (जेपीए का उपयोग करके) कॉन्फ़िगर करें कुशल 4×4 मैट्रिक्स गुणन (सी बनाम विधानसभा) Linq में बैच बनाएं C ++ में गतिशील रूप से आबंटित ऑब्जेक्ट के लिए पॉइंटर्स के वेक्टर का उपयोग करते समय मेमोरी लीक से कैसे बचें? कुंजी क्या है = लैम्ब्डा कैसे सॉकेट एपीआई () फ़ंक्शन काम स्वीकार करता है?

रिक्त स्थान के साथ std :: cin इनपुट?

#include <string> string input; cin >> input; 

उपयोगकर्ता "हैलो वर्ल्ड" दर्ज करना चाहता है लेकिन दो शब्दों के बीच की जगह पर cin विफल हो गया है। मैं पूरे Hello World में cin कैसे कर सकता हूं?

मैं वास्तव में structs के साथ यह कर रहा हूँ और cin.getline काम करने के लिए नहीं लगता है यहां मेरा कोड है:

 struct cd { string CDTitle[50]; string Artist[50]; int number_of_songs[50]; }; cin.getline(library.number_of_songs[libNumber], 250); 

यह एक त्रुटि पैदा करता है कोई विचार?

Solutions Collecting From Web of "रिक्त स्थान के साथ std :: cin इनपुट?"

आपको cin.getline() का उपयोग cin.getline() :

 char input[100]; cin.getline(input,sizeof(input)); 

यह "असफल" नहीं है; यह सिर्फ पढ़ने बंद हो जाता है यह "स्ट्रिंग" के रूप में एक लेक्सिकल टोकन को देखता है।

std::getline प्रयोग करें:

 int main() { std::string name, title; std::cout << "Enter your name: "; std::getline(std::cin, name); std::cout << "Enter your favourite movie: "; std::getline(std::cin, title); std::cout << name << "'s favourite movie is " << title; } 

ध्यान दें कि यह std::istream::getline के समान नहीं है, जो std::string s के बजाए C-style char बफ़र्स के साथ काम करता है

अद्यतन करें

आपके संपादित प्रश्न मूल के साथ थोड़ा समानता भालू।

आप किसी getline में getline कोशिश कर रहे थे, स्ट्रिंग या कैरेक्टर बफर नहीं। धाराओं के स्वरूपण संचालन केवल operator<< और operator>> साथ काम करते हैं या तो उनमें से किसी एक का उपयोग करें (और बहु-शब्द इनपुट के लिए तदनुसार getline ), या getline उपयोग getline और getline बाद में वास्तव में कनवर्ट करें।

उपयोग :

 getline(cin, input); 

समारोह में पाया जा सकता है

 #include <string> 

आप cin में .लाइन फ़ंक्शन का उपयोग करना चाहते हैं।

 #include <iostream> using namespace std; int main () { char name[256], title[256]; cout << "Enter your name: "; cin.getline (name,256); cout << "Enter your favourite movie: "; cin.getline (title,256); cout << name << "'s favourite movie is " << title; return 0; } 

यहाँ से उदाहरण ले लिया अधिक जानकारी और उदाहरणों के लिए इसे देखें

सी रास्ता

आप cstdio (stdio.h में ग) में मिली फ़ंक्शन का उपयोग कर सकते हैं:

 #include<cstdio> int main(){ char name[256]; gets(name); // for input puts(name);// for printing } 

सी ++ मार्ग

सी ++ 11 में gets है

[अनुशंसित]: आप होललाइन (cin, name) का उपयोग कर सकते हैं जो string.h या cin.getline (नाम, 256) में है जो कि iostream ही है

 #include<iostream> #include<string> using namespace std; int main(){ char name1[256]; string name2; cin.getline(name1,256); // for input getline(cin,name2); // for input cout<<name1<<"\n"<<name2;// for printing } 

स्टैंडर्ड लाइब्रेरी एक इनपुट फ़ंक्शन प्रदान करती है जिसे ws कहा जाता है, जो एक इनपुट स्ट्रीम से सफेद स्थान का उपयोग करता है। आप इसे इस तरह से उपयोग कर सकते हैं:

 std::string s; std::getline(std::cin >> std::ws, s); 

यह एक पुराना सवाल है लेकिन कोई मुझे बता सकता है कि मेरा समाधान गलत है या नहीं:

 std::string s, temp; std::stringstream ss; while(std::cin>>temp){ ss<<temp; ss<<" "; } s = ss.str(); 
 int main(){ char name[20]; gets(name); } 

रिक्त स्थान के साथ स्ट्रिंग (सी में चार में से एक सरणी) लेने के लिए उपयोग () हो जाता है