C-র sprintf() ফাংশন স্ট্রিং-এ ফরম্যাটেড আউটপুট স্টোর করে। C++-এ এর সমতুল্য হলো std::ostringstream (<sstream> হেডার)।
উদাহরণ কোড
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main() {
string my_str;
ostringstream os;
os << "This is a string. We will store " << 50 << " in it. We can store " << 52.32 << " also.";
my_str = os.str(); // স্ট্রিম থেকে স্ট্রিং-এ কনভার্ট
cout << my_str;
return 0;
}
আউটপুট
This is a string. We will store 50 in it. We can store 52.32 also.
স্প্রিন্টএফ vs ostringstream
| বিষয় | sprintf | ostringstream |
|---|---|---|
| টাইপ সেফটি | না (ফরম্যাট স্ট্রিং মিথস্ক্রিয়ায় UB) | হ্যাঁ (অপারেটর << ওভারলোড) |
| বাফার ওভারফ্লো | সম্ভব (snprintf ব্যবহার করুন) | নहीं (ডাইনামিক বাফার) |
| এক্সটেন্সিবিলিটি | লিমিটেড | বেশি (কাস্টম টাইপ সাপোর্ট) |
| পারফরম্যান্স | দ্রুত (C-স্টাইল) | থেকে ধীর (অবজেক্ট ওভারহেড) |
C++20: std::format (Python-সদৃশ ফরম্যাটিং) উপলব্ধ, যা আরও সুরক্ষিত ও পাঠযোগ্য।