मैं कल से C ++ सीखने की कोशिश कर रहा हूं और मैं इस दस्तावेज का उपयोग कर रहा हूं: http://www.cplusplus.com/files/tutorial.pdf (पेज 32)। मुझे दस्तावेज़ में एक कोड मिला और मैंने उसे चलाया। मैंने कीमत के लिए 5.5 रुपये और एक पूर्णांक के लिए इनपुट की कोशिश की और आउटपुट 0. था। मैंने 5.5 और 6 का इनपुट करने की कोशिश की और आउटपुट सही था।
// stringstreams
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main ()
{
string mystr;
float price = 0;
int quantity = 0;
cout << "Enter price: ";
getline (cin,mystr);
stringstream(mystr) >> price;
cout << "Enter quantity: ";
getline (cin,mystr);
stringstream(mystr) >> quantity;
cout << "Total price: " << price*quantity << endl;
return 0;
}
प्रश्न: वास्तव में मिस्ट्रिंग कमांड क्या करती है? दस्तावेज़ से उद्धरण:
"इस उदाहरण में, हम मानक इनपुट से अप्रत्यक्ष रूप से संख्यात्मक मान प्राप्त करते हैं। मानक इनपुट से सीधे संख्यात्मक मान निकालने के बजाय, हम मानक इनपुट (सिने) से एक स्ट्रिंग ऑब्जेक्ट (मिस्टर) में लाइनें प्राप्त करते हैं, और फिर हम पूर्णांक निकालते हैं। इस स्ट्रिंग से टाइप इंट (मात्रा) के एक चर में मान। "
मेरी धारणा यह थी कि फ़ंक्शन एक स्ट्रिंग के अभिन्न अंग को ले जाएगा और इनपुट के रूप में उपयोग करेगा।
(मैं वास्तव में यहाँ एक सवाल पूछने के लिए कैसे पता नहीं है। मैं भी प्रोग्रामिंग के लिए नया हूँ) धन्यवाद।
stringstream
काम करता है। यह एक विचित्र है शायद एक भी बुरा =) लेकिन यह दर्शाता है कि आप एक धारा के रूप में स्ट्रिंग का इलाज कर सकते हैं।
stringstream
तो यह निश्चित रूप से एक गलत उदाहरण है। और अगर है भी तो उसे अलग तरह से लिखा जाना चाहिए।
stringstream
इस तरह से इस्तेमाल नहीं किया है। मैं आमतौर पर, लाइन लोड परिवर्तित और फिर, भागों से निकालने लेकिन इस स्पष्ट रूप से थोड़ा लाभ यहाँ नहीं है, क्योंकिcin
है एक इनपुट धारा पहले से ही ... तोcin >> price >> quantity;
बहुत आसान द्वारा किया जाएगा। यह cplusplus.com ट्यूटोरियल का उपयोग नहीं करने का एक अच्छा कारण होगा ।