2009-10-18 13 views
16

मैं वर्तमान स्थिति से सी ++ में सीन से एक स्ट्रिंग में एक न्यूलाइन चरित्र तक पढ़ना चाहता हूं। पढ़ने के पात्रों में रिक्त स्थान शामिल हो सकते हैं। मेरा पहला पास में विफल रहता है क्योंकि यह पहले स्थान पर बंद हो जाता है:एक न्यूलाइन चरित्र तक व्हाइटस्पेस के साथ सीन कैसे पढ़ा जाए?

string result; 

cin >> result; 

तो CIN दिया जाता है:

(cd /my/dir; doSometing)\n 

चर परिणाम केवल हो जाता है:

(cd 

मैं मैं होना चाहिए लगता होगा इसे पूरा करने के लिए स्ट्रीम मैनिपुलेटर्स का उपयोग करने में सक्षम, लेकिन skipws बिल्कुल सही नहीं था कि यह रिक्त स्थान और टैब के साथ कैरिज रिटर्न फेंकता है, और ऐसा लगता है कि अग्रणी व्हाइटस्पेस को छोड़ने के लिए यह है।

शायद मुझे इस तरह स्ट्रीमबफ का उपयोग करने की आवश्यकता है?

streambuf buf; 

cin >> buf; 

उत्तर

21
std::string str; 
std::getline(std::cin, str); 
+3

नोट (के बाद से मैं सिर्फ इस से जला दिया गया): AIX 5.1 के साथ काम करने के लिए प्रकट नहीं करता है। मुझे stdio.h में परिभाषित 'fgets' का उपयोग करना पड़ा। – Pete

संबंधित मुद्दे