मैं समझने की कोशिश कर रहा हूं कि कैसे stringstream
स्ट्रिंग्स के रूप में इनपुट किए गए संभावित संख्याओं को पहचानने और परिवर्तित करने में सक्षम होने के लिए काम करता है ... किसी कारण से मैंने कोड के छोटे टुकड़े को लिखने और समझने के लिए लिखा stringstream
कुछ त्रुटियों के साथ कष्टप्रद ...स्ट्रिंगस्ट्रीम त्रुटियों सी ++
#include <iostream>
#include <string>
using namespace std;
int str2int (const string &str) {
std::stringstream ss(str);
int num;
if((ss >> num).fail())
{
num = 0;
return num;
}
return num;
}
int main(){
int test;
int t = 0;
std::string input;
while (t !=1){
std::cout << "input: ";
std::cin >> input;
test = str2int(input);
if(test == 0){
std::cout << "Not a number...";
}else
std::cout << test << "\n";
std::cin >> t;
}
return 0;
}
त्रुटियाँ:
Error C2079:'ss' uses undefined class std::basic_stringstream<_elem,_traits,_alloc>'
Error C2228: left of '.fail' must have class/struct/union
Error C2440: 'initializing': cannot convert 'const std::string' into 'int'
क्या मैं गलत कर रहा हूँ?
त्रुटि संदेशों के पीछे कारण नहीं है, लेकिन एक चीज जो आप गलत कर रहे हैं वह 'स्ट्रिंगस्ट्रीम' का उपयोग कर रही है, जब आपको 'istringstream' का उपयोग करना चाहिए। ('असफल' का उपयोग भी बहुत मूर्ख नहीं है।) –