दिलचस्प पोस्ट
डिफ़ॉल्ट रूप से नंबर कीपैड के साथ संपादन करें, लेकिन वर्णमाला वर्णों को अनुमति दें PHP में एक फ्लैट सरणी से पेड़ का निर्माण करें पॉलीमॉर्फिज़्म में सी ++ जैक्सन JSON और सीतनिद्रा में होना जेपीए मुद्दे के साथ अनंत पुनरावर्ती ईमेल इन्टेंट भेजें डेटाग्रीड WPF में चयनित पंक्ति आइटम प्राप्त करें Ui-sref में यूआई-राउटर में नियंत्रक से पैरामीटर कैसे निकालें अजगर 3.5: प्रकार त्रुटि: किसी बाइट-जैसे ऑब्जेक्ट की आवश्यकता होती है, फ़ाइल को लिखते समय 'str' नहीं बराबर (=) बनाम पायथन: रेगेक्स के साथ नेस्टेड कोष्ठक से मिलान कैसे करें? सूची दृश्य सूची को अद्यतन करने के बाद सूची के अंत तक स्क्रॉल करें सी पंक्ति से फ़ाइल लाइन पढ़ें कर्ल के साथ $ _POST मान पासिंग मुझे "कोशिश" – "पकड़" में हर ब्लॉक क्यों नहीं लपेटें? स्ट्रिंग को पूर्णांक में कनवर्ट करने के लिए sscanf या atoi में क्या अंतर है?

Std :: स्ट्रिंग के लिए एक इंट संलग्न करें

क्यों यह कोड डीबग का निषेध विफल होता है?

std::string query; int ClientID = 666; query = "select logged from login where id = "; query.append((char *)ClientID); 

वेब के समाधान से एकत्रित समाधान "Std :: स्ट्रिंग के लिए एक इंट संलग्न करें"

std::string::append() विधि का तर्क है कि इसका तर्क एक निरस्त टर्मिनल स्ट्रिंग ( char* ) है।

एक string conteing int बनाने के लिए कई दृष्टिकोण हैं:

  • std::ostringstream

     #include <sstream> std::ostringstream s; s << "select logged from login where id = " << ClientID; std::string query(s.str()); 
  • std::to_string (C ++ 11)

     std::string query("select logged from login where id = " + std::to_string(ClientID)); 
  • boost::lexical_cast

     #include <boost/lexical_cast.hpp> std::string query("select logged from login where id = " + boost::lexical_cast<std::string>(ClientID)); 

स्ट्रिंग प्राप्त करने के लिए आप चार * में कोई आंत नहीं डाल सकते। इसे इस्तेमाल करे:

 std::ostringstream sstream; sstream << "select logged from login where id = " << ClientID; std::string query = sstream.str(); 

स्ट्रिंग स्ट्रीम संदर्भ

आप ClientID को चार * कास्टिंग कर रहे हैं जिससे फ़ंक्शन को इसकी एक नल टेरीटेड चार सरणी मान ली जाती है, जो कि यह नहीं है।

cplusplus.com से:

स्ट्रिंग और संलग्न (const char * s); एस द्वारा इंगित की गई निरर्थक वर्ण अनुक्रम (सी स्ट्रिंग) द्वारा बनाई गई तार की एक प्रति संलग्न करता है इस चरित्र अनुक्रम की लंबाई को एक निरर्थक वर्ण की पहली अवस्था के द्वारा निर्धारित किया जाता है (जैसा लक्षणों द्वारा निर्धारित किया जाता है। लम्बाई (ओं)

मुझे लगा है कि आपका ClientID एक स्ट्रिंग टाइप (शून्य-टर्मिनेटेड char* या std::string ) का नहीं है, लेकिन कुछ इंटेग्रल टाइप (जैसे int ) तो आपको पहले स्ट्रिंग में नंबर बदलने की आवश्यकता है:

 std::stringstream ss; ss << ClientID; query.append(ss.str()); 

लेकिन आप operator+ भी इस्तेमाल कर सकते हैं ( append बजाय):

 query += ss.str();