दिलचस्प पोस्ट
वैश्विक चर का उपयोग किए बिना अन्य कार्यों से चर तक पहुंच ढूँढना पथ / रूट आईफोन में मैपकेट पर दो बिंदुओं के बीच निर्माता चेतावनी में इसे लेक दो तिथियों के बीच दिन का अंतर ढूंढें (सप्ताहांत के दिनों को छोड़कर) CodeIgniter activrecord, आखिरी प्रविष्टि आईडी पुनर्प्राप्त करें? कैसे सेट सीमित करने के लिए केवल "वैध" उपयोग करता है? वेब-साइट को लैंडस्केप मोड में दिखाने के लिए मजबूर करना MySQL विदेशी कुंजी त्रुटि 1005 त्रुटि 150 पीएचजी की जीडीलिब इमेजकोपीरेटमप्लेड का इस्तेमाल करते समय पीएनजी छवि पारदर्शिता को संरक्षित किया जा सकता है? Android WebView शैली पृष्ठभूमि-रंग: पारदर्शी Android 2.2 पर ध्यान नहीं दिया क्या वास्तव में nullptr है? कॉलबैक अजाक्स जेसन के साथ jQuery के स्वत: पूर्ण सभी विशेषताओं को निकालें सी प्रोग्रामिंग, यह बड़ी सरणी घोषणा क्यों एक विभाजन गलती का उत्पादन करती है? json_encode फ़ंक्शन: विशेष वर्ण

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();