C++ में sprintf की तरह स्ट्रिंग फ़ॉर्मेटिंग: आधुनिक और सुरक्षित तरीके
नमस्ते! मैं हाल ही में C++ में लिख रहा हूँ, और मुझे स्ट्रिंग फ़ॉर्मेटिंग की समस्या का सामना करना पड़ा। पहले C में मैं sprintf का उपयोग करता था:
char buffer[256];
sprintf(buffer, "नमस्ते, %s! आप %d वर्ष के हैं।", name.c_str(), age);
लेकिन C++ में std::string के साथ यह असुविधाजनक है: c_str() का उपयोग करना पड़ता है, फिक्स्ड-साइज़ buffer, और sprintf असुरक्षित है (buffer overflow हो सकता है)। मैंने snprintf आज़माया — बेहतर है, लेकिन फिर भी बोझिल है।
मुझे पता है कि std::stringstream मौजूद है, लेकिन यह बहुत verbose है:
std::stringstream ss;
ss << "नमस्ते, " << name << "! आप " << age << " वर्ष के हैं।";
std::string result = ss.str();
यह सरल मामलों के लिए ठीक है, लेकिन जब संख्याओं को फ़ॉर्मेट करना हो (field width, precision, hex), तो pseudo-code लिखना कष्टदायक हो जाता है। उदाहरण के लिए, कैसे आउटपुट करें